# http-browserify
The
[http](http://nodejs.org/docs/v0.4.10/api/all.html#hTTP) module from node.js,
but for browsers.
When you `require('http')` in
[browserify](http://github.com/substack/node-browserify),
this module will be loaded.
# example
``` js
var http = require('http');
http.get({ path : '/beep' }, function (res) {
var div = document.getElementById('result');
div.innerHTML += 'GET /beep
';
res.on('data', function (buf) {
div.innerHTML += buf;
});
res.on('end', function () {
div.innerHTML += '
__END__';
});
});
```
# http methods
var http = require('http');
## var req = http.request(opts, cb)
where `opts` are:
* `opts.method='GET'` - http method verb
* `opts.path` - path string, example: `'/foo/bar?baz=555'`
* `opts.headers={}` - as an object mapping key names to string or Array values
* `opts.host=window.location.host` - http host
* `opts.port=window.location.port` - http port
* `opts.responseType` - response type to set on the underlying xhr object
The callback will be called with the response object.
## var req = http.get(options, cb)
A shortcut for
``` js
options.method = 'GET';
var req = http.request(options, cb);
req.end();
```
# request methods
## req.setHeader(key, value)
Set an http header.
## req.getHeader(key)
Get an http header.
## req.removeHeader(key)
Remove an http header.
## req.write(data)
Write some data to the request body.
If only 1 piece of data is written, `data` can be a FormData, Blob, or
ArrayBuffer instance. Otherwise, `data` should be a string or a buffer.
## req.end(data)
Close and send the request body, optionally with additional `data` to append.
# response methods
## res.getHeader(key)
Return an http header, if set. `key` is case-insensitive.
# response attributes
* res.statusCode, the numeric http response code
* res.headers, an object with all lowercase keys
# compatibility
This module has been tested and works with:
* Internet Explorer 5.5, 6, 7, 8, 9
* Firefox 3.5
* Chrome 7.0
* Opera 10.6
* Safari 5.0
Multipart streaming responses are buffered in all versions of Internet Explorer
and are somewhat buffered in Opera. In all the other browsers you get a nice
unbuffered stream of `"data"` events when you send down a content-type of
`multipart/octet-stream` or similar.
# protip
You can do:
````javascript
var bundle = browserify({
require : { http : 'http-browserify' }
});
````
in order to map "http-browserify" over `require('http')` in your browserified
source.
# install
With [npm](https://npmjs.org) do:
```
npm install http-browserify
```
# license
MIT