| 1234567891011121314151617181920212223242526272829303132333435 |
- 'use strict'
- const http = require('http')
- const https = require('https')
- export interface response {
- statusCode: number,
- headers: object,
- body: string
- }
- export function httpRequest(urlOptions, data = ''): Promise<response> {
- let operator = http
- if (urlOptions.startsWith('https'))
- operator = https
- return new Promise((resolve, reject) => {
- const request = operator.request(urlOptions,
- (result) => {
- let body = ''
- result.on('data', (chunk = '') => (body += chunk))
- result.on('error', reject)
- result.on('end', () => {
- if (result.statusCode >= 200 && result.statusCode <= 299) {
- resolve({statusCode: result.statusCode, headers: result.headers, body: body})
- } else {
- reject('Request failed. status: ' + result.statusCode + ', body: ' + body)
- }
- })
- })
- request.on('error', reject)
- request.write(data, 'binary')
- request.end()
- })
- }
|