Tiny, lightweight, full featured HTTP client
npm install lil-http
Tiny, lightweight, full featured HTTP client for the browser.
| Name | http |
| Version | 0.1.17 |
| Size | 3 KB / 1 KB (gzipped) |
| Environment | Browser |
- Simple fully configurable API
- Support any HTTP verb
- Built-in error handling
- Binary response handling support
- Content-Type autodiscovery
- Support auth credentials
- Request progress status report
- Support passing custom headers
- Transparent support for CORS (in IE)
- Simple request state handling based on callback
- Transparent payload JSON serializer
Via Bower
``bash`
bower install lil-http
Via Component
`bash`
component install lil-js/http
Or loading the script remotely
`html`
- Chrome >= 5
- Firefox >= 3
- Safari >= 5
- Opera >= 10
- IE >= 9
You could fetch de module via require() if it's available.lil.http
Otherwise, global fallback will be used, exposed via
##### Sample GET request
`js`
lil.http.get('/sample.json', {
auth: { user: 'Tom', password: 'p@s$w0rD' }
headers: { 'X-Version': '0.1.0' }
}, function (err, res)) {
if (err) throw new Error('Cannot perform the request: ' + err.status)
if (res.status === 200) {
console.log(res.data)
}
})
##### Sample POST request
`js`
lil.http.post('/register', {
data: { user: 'Tom' },
headers: { 'API-Key': '8c1c4180-36b5-11e4-8510-0800200c9a66' }
}, function (err, res)) {
if (err) throw new Error('Cannot register: ' + err.status)
if (res.status === 200) {
console.log('Registered!')
}
})
- url string - Server request URLmixed
- data - Payload data to send as body request. See [MDN][sendXHR] for more informationobject
- params - Map of key-value query string paramsobject
- headers - Map of strings representing HTTP headers to send to the servernumber
- timeout - Request maximum timeout in milliseconds. Default to 30 secondsobject
- auth - Authentication credentials to the server. Object must have the user and password properties with string valuesboolean
- withCredentials - Whether to set the withCredentials flag on the XHR object. See [MDN][withcredentials] for more informationstring
- method - Request HTTP method. Default to GETstring
- responseType - Define how to handle the response data. Allowed values are: text, arraybuffer, blob or document
- data mixed - Body response. If the MIME type is JSON-compatible, it will be transparently parsednumber
- status - HTTP response status codeobject
- headers - Response headersobject
- xhr - Original XHR instancemixed
- error - Error info, usually an Error instance (in case that an error happens)
#### http(url, options, cb, [ progressCb ])
#### http.get(url, options, cb, [ progressCb ])
#### http.post(url, options, cb, [ progressCb ])
#### http.put(url, options, cb, [ progressCb ])
#### http.delete(url, options, cb, [ progressCb ])
#### http.patch(url, options, cb, [ progressCb ])
#### http.head(url, options, cb, [ progressCb ])
#### http.defaults
Type: object
Default client config object
#### http.defaultContent
Type: string Value: text/plain
Default Content-Type request header value
#### http.VERSION
Wanna help? Cool! It will be appreciated :)
You must add new test cases for any new feature or refactor you do,
always following the same design/code patterns that already exist
Only node.js is required for development
Clone the repository
`bash`
$ git clone https://github.com/lil-js/http.git && cd http
Install dependencies
`bash`
$ npm install
Generate browser bundle source
`bash`
$ make browser
Run tests
`bash``
$ make test
MIT © Tomas Aparicio
[withcredentials]: https://developer.mozilla.org/es/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials
[sendXHR]: https://developer.mozilla.org/es/docs/XMLHttpRequest#send()
[travis]: http://travis-ci.org/lil-js/http