Initial commit
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
'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()
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user