http.min
v2.1.0
Published
Minimalistic & simplistic HTTP client. No dependencies, under 100 SLOC.
Downloads
161
Maintainers
Readme
Minimal HTTP client library
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.
Install
npm install --save http.min
Examples
GET
var http = require('http.min')
http('https://httpbin.org/get').then(function (result) {
console.log('Code: ' + result.response.statusCode)
console.log('Response: ' + result.data)
})
POST
JSON
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)
})
Form urlencoded
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)
})
JSON
var http = require('http.min')
http.json('https://httpbin.org/get').then(function (data) {
console.log('Response:', data.url)
})
Advanced
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)
})
Helpers
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)
})
License
ISC