Minimal simple HTTP client with promises.
Supports HTTP, HTTPS and common methods GET, POST, PUT, PATCH, DELETE.
Includes timeout, query string, form data, JSON helpers.
No dependencies, under 100 SLOC, 100% code coverage.
npm install --save http.min
var http = require('http.min')
http('https://httpbin.org/get').then(function (result) {
console.log('Code: ' + result.response.statusCode)
console.log('Response: ' + result.data)
})
var http = require('http.min')
http.post('https://httpbin.org/post', {data: 'hello'}).then(function (result) {
console.log('Code: ' + result.response.statusCode)
console.log('Response: ' + result.data)
})
data
parameter is a string.
var http = require('http.min')
http.post('https://httpbin.org/post', 'data=hello').then(function (result) {
console.log('Code: ' + result.response.statusCode)
console.log('Response: ' + result.data)
})
var http = require('http.min')
http.json('https://httpbin.org/get').then(function (data) {
console.log('Response:', data.url)
})
Functions also accept http.request options object.
var http = require('http.min')
var options = {
protocol: 'https:',
hostname: 'httpbin.org',
path: '/get',
headers: {
'User-Agent': 'Node.js http.min'
}
}
http.json(options).then(function (data) {
console.log('Response:', data)
})
var http = require('http.min')
var options = {
uri: 'https://httpbin.org/post',
// timeout in ms
timeout: 1000,
// query string helper
query: {
hello: 'test'
},
// form urlencoded
form: {
test: 'ok'
},
// handle JSON data
json: true
// send JSON data and expect JSON response
json: {
this: 'is data'
},
request: function (req) {
// hook to manipulate request before being sent
// instace of node http.ClientRequest
req.setTimeout(2000)
req.on('upgrade', ...)
}
}
http.post(options).then(function (result) {
console.log('Code: ' + result.response.statusCode)
console.log('Response:', result.data)
})
ISC