1.1.2 • Published 10 years ago

fd-http-request v1.1.2

Weekly downloads
2
License
ISC
Repository
github
Last release
10 years ago

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 address
  • callback callback - function(res) callback function after a request
    • object res - response from server
      • integer status - response status
      • string data - response text from server
      • object headers - response headers
      • array cookies - response cookies
      • object parsedCookies - parsed response cookies. Valid for the request
      • string 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 address
  • callback callback - function(res) callback function after a request
    • object res - response from server
      • integer status - response status
      • string data - response text from server
      • object headers - response headers
      • object parsedCookies - parsed response cookies. Valid for the request
      • array cookies - response cookies
      • string 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 options
    • boolean 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 to false, if look like {foo: 'bar', doo: 'gar'} set it to true. 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 errors
  • Bugfix - second argument convert Request# cookie(). If it set, make valid first argument cookies for request style

1.1.1 Unstable

  • Add - second argument convert Request# cookie(). If it set, make valid first argument cookies for request style

1.1.0 Unstable

  • Add - response parsed cookies res.parsedCookies to the callback. It is valid сookies for the request in opts.cookies
  • Add - method Request returns class Request(opts) . It intelligent class based on post and get methods. It can set permanent headers, save response cookies, get current cookies and headers and more.

0.5.0 Stable

  • Add - dependence on the iconv-lite
  • Add - autodetect body charset from header content-type and convert it
  • Add - response charset argument res.charset to the callback
  • Change - rename opts.encode to opts.charset

0.4.0 Unstable

  • Add - dependence on the cookie
  • Add - custom cookie opts.cookies
  • Change - callback function. Now it called with object res argument

0.3.0 Unstable

  • Add - dependence on the object-merge
  • Add - custom headers opts.headers
  • Change - moved 2-nd data argument to opts.data
  • Other - make code less

0.2.0 Unstable

  • Add - autodetect protocol http or https
  • Change - 4-th argument from the string encode to the object opts
1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago

0.5.2

10 years ago

0.5.1

10 years ago

0.5.0

10 years ago

0.4.1

10 years ago

0.4.0

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago