A simple HTTP request agent designed primarily for GETing stuff.
var request = require('cogent')
var uri = 'https://raw.github.com/visionmedia/express/master/package.json'
// Pipe stdout
var res = yield* request(uri)
res.pipe(process.stdout)
// Save to a file
var res = yield* request(uri, require('os').tmpdir() + '/express.package.json')
if (res.destination) console.log('ok')
// Get as JSON
var res = yield* request(uri, true)
var json = res.body
You can also use it without generators by wrapping it with co:
var co = require('co')
var request = co(require('cogent'))
request('https://github.com', function (err, res) {
res.pipe(process.stdout)
})
url is the URL of the request.
The options are passed to http.request().
Additional options are:
buffer - buffer the response and save it as res.bufferstring - buffer the response as a string and save it as res.textjson - buffer the response as an object and save it as res.bodydestination - cojs/cogent the response to the file destinationtimeout - response header timeout per try, default 5000 millisecondsretries - number of retries when request fails due to common server errors, default 0redirects - resolve redirects, default 1If options === true, it defaults to { json: true }.
If typeof options === 'string', it defaults to { destination: string }.
response will have the following properties:
res.req - the request objectres.res - the response object, itself if the response was not gzippedres.statusCoderes.headersres.destination - populated only if the file was successfully saved on a 200res.bufferres.textres.body - JSON body populated only on a 200Create a new cogent instance with default options. This allows you to avoid setting the same options every time. See the options listed above.
retriesredirectstimeoutmethodgunzipnetrcagentvar request = require('cogent').extend({
auth: 'username:password'
})
var res = yield* request('http://localhost/', true)
// will send with auth header