Giter Site home page Giter Site logo

request's Introduction

Request -- Simplified HTTP request method

Install

  npm install request

Or from source:

  git clone git://github.com/mikeal/request.git 
  cd request
  npm link .

Running specs:

  node specs.js

Note: jasmine-node package is required to run tests.

Super simple to use

Request is designed to be the simplest way possible to make http calls. It support HTTPS and follows redirects by default.

request(options, callback)

The first argument is an options object. The only required option is uri, all others are optional.

  • uri || url - fully qualified uri or a parsed url object from url.parse()
  • method - http method, defaults to GET
  • headers - http headers, defaults to {}
  • body - entity body for POST and PUT requests. Must be buffer or string.
  • json - similar to body but converts value to string and adds Content-type: application/json header.
  • multipart - (experimental) array of objects which contains their own headers and body attribute. Sends multipart/related request. See example below.
  • client - existing http client object (when undefined a new one will be created and assigned to this property so you can keep around a reference to it if you would like use keep-alive on later request)
  • followRedirect - follow HTTP 3xx responses as redirects. defaults to true.
  • maxRedirects - the maximum number of redirects to follow, defaults to 10.
  • onResponse - If true the callback will be fired on the "response" event instead of "end". If a function it will be called on "response" and not effect the regular semantics of the main callback on "end".
  • encoding - Encoding to be used on response.setEncoding when buffering the response data.
  • requestBodyStream - Stream to read request body chunks from.
  • responseBodyStream - Stream to write body chunks to. When set this option will be passed as the last argument to the callback instead of the entire body.

The callback argument gets 3 arguments. The first is an error when applicable (usually from the http.Client option not the http.ClientRequest object). The second in an http.ClientResponse object. The third is the response body buffer.

Examples:

  var request = require('request');
  request({uri:'http://www.google.com'}, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      sys.puts(body) // Print the google web page.
    }
  })
  var request = require('request');
  var rand = Math.floor(Math.random()*100000000).toString();
  request({
    method: 'PUT',
    uri: 'http://mikeal.couchone.com/testjs/'+ rand,
    multipart: [
      { 'content-type': 'application/json',
        body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}})},
      { body: 'I am an attachment' }
    ] 
  }, function (error, response, body) {
    if(response.statusCode == 201){
      console.log('document saved as: http://mikeal.couchone.com/testjs/'+ rand);
    } else {
      console.log('error: '+ response.statusCode);
      console.log(body)
    }
  })

It's also worth noting that the options argument will mutate. When following a redirect the uri values will change. After setting up a client options it will set the client property.

request's People

Contributors

beanieboi avatar mikeal avatar papandreou avatar stanley avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.