HTTP client based on Axios and a minimal set of plugins.
Features:
- Very easy to use
- Supports automatic retries
- Can be used with Socks5 proxies on the Tor Network
- Does not throw errors
npm i pulli
Same as Axios get and post, except it supports retries and Socks5.
var http = require('pulli')
// Get request
var response = await http('/some/url')
var response = await http({ url: '/some/url', method: 'get' })
// Post request
var response = await http({ url: '/some/url', method: 'post' })
The repsonse object looks like this:
{
// `data` is the response that was provided by the server
data: {},
// `status` is the HTTP status code from the server response
status: 200,
// `statusText` is the HTTP status message from the server response
statusText: 'OK',
// `headers` the HTTP headers that the server responded with
headers: {},
// `config` is the config that was provided to `axios` for the request
config: {},
// `request` is the request that generated this response
request: {},
// `error` is the error object if there was an error
error: {}
}
var http = require('pulli')
var response = await http.get('/some/url', { retries: 3 })
In order to run a Tor proxy in localhost:9050
:
- Install:
brew install tor
- Run:
tor
More here.
var http = require('pulli')
var response = await http.get('/some/url', { socks5: true })
var response = await http.get('/some/url', {
socks5: { host: 'localhost', port: '9050' }
})
var http = require('pulli')
var response = await http.get('/some/url')
var response = await http.post('/some/url', { data: 'hello' })
var response = await http.put('/some/url', { socks5: true, data: 'hello' })
var response = await http.patch('/some/url', { retries: 3 })
var response = await http.delete('/some/url')
var response = await http.options('/some/url')
var response = await http.head('/some/url')
var http = require('pulli')
var success
var error
function onsuccess(response) {
success = true
}
function onerror(response) {
error = true
}
var response = await http.get('/some/url', { onsuccess, onerror })
Created by Eldøy Projects