Agent
Agent is a client-side request module inspired by SuperAgent.
API
The request object
var agent = require('agent')
var request = agent()
Agent can be used by composing methods:
request.method('GET').url('./file').data({x: y}).send(function(error, response) {
})
These methods also act as getters when no parameter is supplied.
Agent can also be used by passing arguments:
var request = agent('GET', './file', {x: y}, function(error, response) {
})
var request = agent('./file', {x: y}, function(error, response) {
})
var request = agent('./file', function(error, response) {
})
You can also mix and match:
var request = agent('./file')
request.send(function(error, response) {
request.data({x: y}).send(function(error, response) {
})
})
Other methods:
request.header(name, value)
request.header(name)
request.header()
request.running()
request.abort()
request.user(userName)
request.password("password")
Encoders, decoders
Agent encodes data you send and decodes data it receives based on content-type.
By default, it encodes and decodes application/x-www-form-urlencoded
and application/json
(however an application/x-www-form-urlencoded
response is not common).
You can add a new response body decoder by doing:
agent.decoder('application/javascript', function(text) {
return new Function(text);
});
request.send(function(error, response) {
})
Or an encoder for data you send:
agent.encoder('application/json', JSON.stringify);
request.header('content-type', 'application/json')
request.data({a: 1, b: 2}).send(function(...) {
})
The response object
The response obejct you get back when requesting contains a few useful properties:
response.text
response.body
response.status
response.header
response.info
response.ok
response.clientError
response.serverError
response.error
response.accepted
response.noContent
response.badRequest
response.unauthorized
response.notAcceptable
response.notFound
Test
Simply run
npm test
And fire up a browser on http://localhost:9090