Simple modern way to make http requests. Supports HTTPS, ES6, JSON and Promises.
Simple GET
import{get}from'simple-get-promise';
get('http://example.com')
.then(res=>{
// res contains
// - res.statusCode
// - res.responseText
})
.catch(error=>{
// Errors if connection fails or status code is not 2xx or 3xx
// You can get the response in error.responseText
});
POST, PUT, HEAD ...
import{post,put,head}from'simple-get-promise';
post({
url:'http://example.com',
body:'some body'
})
.then(res=>{
// res contains
// - res.statusCode
// - res.responseText
})
.catch(error=>{
// Errors if connection fails or status code is not 2xx or 3xx
// You can get the response in error.responseText
});
Because delete is a reserved keyword, you can either use del or
import{get,del}from'simple-get-promise';
del('http://example.com');
// or
get({
url:'http://example.com',
method:'delete'
});
Advanced requests
import{get}from'simple-get-promise';
get({
url:'http://example.com',
headers:{
'X-Random-Header':'hello'
}
})
.then(res=>{
// res contains
// - res.statusCode
// - res.responseText
})
.catch(error=>{
// Errors if connection fails or status code is not 2xx or 3xx
// You can get the response in error.responseText
});
Basic Authentication
import{get}from'simple-get-promise';
get({
url:'http://example.com',
auth:'user:password'
})
Character encoding
By default responses are handled as UTF-8, if you're dealing with other types of encodings you can specify the value in the request object
import{get}from'simple-get-promise';
get({
url:'http://example.com',
encoding:'latin1',
});
Node.js supports only a handful of encodings, if the one you needed is not available you can set encoding: false and handle the response directly as binary.
import{get}from'simple-get-promise';
importiconvfrom'iconv-lite';
const{buffer}=awaitget({
url:'http://example.com',
encoding:false,
});
console.log(iconv.decode(buffer,'Shift_JIS'));
JSON
Extract the message and signature from the cookie.
import{get,asJson}from'simple-get-promise';
get('http://example.com')
.then(asJson)
.then(json=>{
// json is JSON object
})
.catch(error=>{
// Errors if connection fails or status code is not 2xx or 3xx or valid JSON