README
Node.js module for POST / GET http requests
Installation
npm install fd-http-request --save
Usage Example | method GET (VK.com API)
var httpRequest = require('fd-http-request');
// Get request
httpRequest.get('https://api.vk.com/method/users.get', function(res){
console.log( res );
/* RESPONSE:
{
status: 200,
data: '{"response":[{"uid":205387401,"first_name":"Tom","last_name":"Cruise","city":5331,"photo_50":"http:\/\/cs402330.vk.me\/v402330401\/9760\/pV6sZ5wRGxE.jpg","verified":0}]}',
headers: {
server: 'Apache',
date: 'Sat, 12 Sep 2015 02:13:31 GMT',
'content-type': 'application/json; charset=utf-8',
'content-length': 169,
connection: 'close',
'x-powered-by': 'PHP/3.17046',
'set-cookie':[
'remixlang=0; expires=Sun, 18 Sep 2016 03:04:05 GMT; path=/; domain=.vk.com'
],
pragma: 'no-cache',
'cache-control': 'no-store'
},
cookies: [
{
remixlang: 0,
expires: 'Sun, 18 Sep 2016 03:04:05 GMT',
path: '/',
domain: '.vk.com'
}
],
parsedCookies: {
remixlang: 0
},
charset: 'utf-8'
}
*/
}, {
charset: 'utf-8',
protocol: 'https',
data: {
user_ids: 205387401,
fields: 'photo_50,city,verified',
version: 5.37
}
});
Usage Example | Request class (VK.com API)
var Request = require('fd-http-request').Request;
var request = new Request({
saveCookies: true,
headers: {
'x-message': 'hi, mom!'
}
});
request.get('https://api.vk.com/method/users.get', function( res ) {
console.log( res );
/* RESPONSE:
{
status: 200,
...
}
*/
console.log( request.cookie() );
/* SAVED COOKIES:
{
remixlang: '0',
...
domain: '.vk.com'
}
*/
console.log( request.header({
'x-studio': 'FlatDev'
}) );
/* PERMANENT HEADERS:
{
'x-message': 'hi, mom!',
'x-studio': 'FlatDev'
}
*/
console.log( request.header({
'x-message': 'hi, son!'
}) );
/* PERMANENT HEADERS:
{
'x-message': 'hi, son!',
'x-studio': 'FlatDev'
}
*/
console.log( request.clearHeader('x-message') );
/* PERMANENT HEADERS:
{
'x-studio': 'FlatDev'
}
*/
}, {
data: {
user_ids: 205387401,
fields: 'photo_50,city,verified',
version: 5.37
}
});
Methods
get(url, callback, opts)
Makes a GET request
string
url - the requested addresscallback
callback - function(res) callback function after a requestobject
res - response from serverinteger
status - response statusstring
data - response text from serverobject
headers - response headersarray
cookies - response cookiesobject
parsedCookies - parsed response cookies. Valid for the requeststring
charset - response charset
object
opts - request options [optional]object
data - GET data. default:null
. example:{user_ids: 205387401}
object
headers - request headers. default:null
. example:{'User-Agent': 'Mozilla/5.0'}
object
cookies - request cookies. default:null
. example:{foo: 'bar'}
string
charset - response encoding. default:autodetect from the header
. example:'cp1251'
string
protocol - request protocol . default:autodetect from the protocol
. ['http'
or'https'
]
post(url, callback, opts)
Makes a POST request
string
url - the requested addresscallback
callback - function(res) callback function after a requestobject
res - response from serverinteger
status - response statusstring
data - response text from serverobject
headers - response headersobject
parsedCookies - parsed response cookies. Valid for the requestarray
cookies - response cookiesstring
charset - response charset
object
opts - request options [optional]object
data - POST data. default:null
. example:{user_ids: 205387401}
object
headers - request headers. default:null
. example:{'User-Agent': 'Mozilla/5.0'}
object
cookies - request cookies. default:null
. example:{foo: 'bar'}
string
charset - response encoding. default:autodetect from the header
. example:'cp1251'
string
protocol - request protocol . default:autodetect from the protocol
. ['http'
or'https'
]
Classes
Request(opts)
object
opts - class optionsboolean
saveCookies - whether to save response cookies. default:true
object
headers - permanent headers. default:null
. example:{'User-Agent': 'Mozilla/5.0'}
Request# get(url, callback, opts)
Full copy of the get
method. If set opts.saveCookies
merge and save opts.cookies
and merge opts.headers
, if they set.
Request# post(url, callback, opts)
Full copy of the post
method. If set opts.saveCookies
merge and save opts.cookies
and merge opts.headers
, if they set.
Request# header()
Returns current permanent headers
- return
object
- permanent headers
Request# header( headers )
Updates permanent headers
object
headers - add new or change current permanent headers. example:{'User-Agent': 'Mozilla/5.0'}
- return
object
- current permanent headers
Request# clearHeader()
Removes all permanent headers
- return
object
- current permanent headers
Request# clearHeader( name )
Removes permanent header
string
name - the name of removed header. example:'User-Agent'
- return
object
- current permanent headers
Request# cookie()
Returns saved cookies
- return
object
- saved cookies
Request# cookie( cookies )
Updates saved cookies
object
cookies - add new or change saved cookies. example:{foo: 'bar'}
- return
object
- current saved cookies
Request# cookie( cookies, convert )
Make valid input cookies and updates saved cookies
object
cookies - add new or change saved cookies. example:{foo: 'bar'}
boolean
convert - whether to convert cookies. if cookies look like[{foo: 'bar'}, {doo: 'gar'}]
set it tofalse
, if look like{foo: 'bar', doo: 'gar'}
set it totrue
. default:true
- return
object
- current saved cookies
Request# clearCookie()
Removes all saved cookies
- return
object
- current saved cookies
Request# clearCookie( name )
Removes saved cookie
string
name - the name of removed cookie. example:'foo'
- return
object
- current saved cookies
Changelog
1.1.2 [ Unstable ]
Change
- fixed stylistic errors that could lead to errorsBugfix
- second argumentconvert
Request# cookie(). If it set, make valid first argument cookies for request style
1.1.1 [ Unstable ]
Add
- second argumentconvert
Request# cookie(). If it set, make valid first argument cookies for request style
1.1.0 [ Unstable ]
Add
- response parsed cookiesres.parsedCookies
to the callback. It is valid Ńookies for the request inopts.cookies
Add
- methodRequest
returns class Request(opts) . It intelligent class based onpost
andget
methods. It can set permanent headers, save response cookies, get current cookies and headers and more.
Stable
]
0.5.0 [ Add
- dependence on the iconv-liteAdd
- autodetect body charset from headercontent-type
and convert itAdd
- response charset argumentres.charset
to the callbackChange
- renameopts.encode
toopts.charset
0.4.0 [ Unstable ]
Add
- dependence on the cookieAdd
- custom cookieopts.cookies
Change
- callback function. Now it called withobject
res argument
0.3.0 [ Unstable ]
Add
- dependence on the object-mergeAdd
- custom headersopts.headers
Change
- moved 2-nddata
argument toopts.data
Other
- make code less
0.2.0 [ Unstable ]
Add
- autodetect protocolhttp
orhttps
Change
- 4-th argument from thestring
encode to theobject
opts