Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/indexzero/http-agent
A simple agent for performing a sequence of http requests in node.js
https://github.com/indexzero/http-agent
Last synced: 20 days ago
JSON representation
A simple agent for performing a sequence of http requests in node.js
- Host: GitHub
- URL: https://github.com/indexzero/http-agent
- Owner: indexzero
- Created: 2010-06-25T05:19:51.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2013-05-02T07:37:44.000Z (over 11 years ago)
- Last Synced: 2024-04-23T13:09:45.253Z (7 months ago)
- Language: JavaScript
- Homepage: http://github.com/indexzero/http-agent
- Size: 140 KB
- Stars: 92
- Watchers: 4
- Forks: 15
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# http-agent
A simple agent for performing a sequence of http requests in node.js
## Installation
### Installing npm (node package manager)
curl http://npmjs.org/install.sh | sh### Installing http-agent
npm install http-agent## Usage
There are several way to use http-agent:
1. Simple: Pass it a host and an array of strings to visit all of those URLs.
2. Complex: Pass it a host and an array of JSON objects representing all relevant parameters (method, request body, etc.)
3. Iterator: Each time the 'next' event is raised by an agent, you have the opportunity to add or remove URLs you wish to visit. In this sense### Using http-agent to visit a set of URLs on a single host with 'GET'
var util = require('util'),
httpAgent = require('path/to/http-agent/lib');
var agent = httpAgent.create('graph.facebook.com', ['apple', 'facebook', 'google']);
agent.addListener('next', function (e, agent) {
// Simple usage: Just output the raw
// HTML returned from each request
util.puts(agent.body);
agent.next();
});
agent.addListener('stop', function (e, agent) {
util.puts('Agent has completed visiting all urls');
});
// Start the agent
agent.start();### Using http-agent to visit a set of URLs on a single host with complex parameters
Since http-agent is based on top of request, it can take a set of JSON objects for request to use. If you're looking for more documentation about what parameters are relevant to http-agent, see [request][0] which http-agent is built on top of.
var util = require('util'),
httpAgent = require('path/to/http-agent/lib');
var options = [
{
method: 'GET',
uri: 'apple'
},
{
method: 'GET',
uri: 'facebook'
},
{
method: 'GET',
uri: 'http://google.com/'
}
];
var agent = httpAgent.create('graph.facebook.com', options);
agent.addListener('next', function (e, agent) {
// Simple usage: Just output the raw
// HTML returned from each request
util.puts(agent.body);
agent.next();
});
agent.addListener('stop', function (e, agent) {
util.puts('Agent has completed visiting all urls');
});
// Start the agent
agent.start();### Using http-agent as an iterator over webpages
Each time an instance of http-agent raises the 'next' event the agent is passed back as a parameter. That allows us to change the control flow of pages each time a page is visited. The agent is also passed back to other important events such as 'stop' and 'back'.
var util = require('util'),
httpAgent = require('path/to/http-agent/lib');
var agent = httpAgent.create('graph.facebook.com', ['apple', 'facebook', 'google']),
addPage = true;
agent.addListener('next', function (e, agent) {
if (addPage) {
// The agent will now also visit 'http://graph.facebook.com/yahoo'
agent.addUrl('yahoo');
addPage = false;
}// Simple usage: Just output the raw
// HTML returned from each request
util.puts(agent.body);
agent.next();
});
agent.addListener('stop', function (e, agent) {
util.puts('Agent has completed visiting all urls');
});
// Start the agent
agent.start();## Run Tests
vows test/*-test.js --spec#### Author: [Charlie Robbins](http://www.charlierobbins.com);
[0]: https://github.com/mikeal/request