Skip to content

JacksonTian/httpx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

httpx

http(s) module with power.

NPM version Node.js CI codecov npm download

Installation

npm install httpx --save

Usage

import * as httpx from 'httpx';

Request URL

const response = await httpx.request('http://www.baidu.com/');
const body = await httpx.read(response, 'utf-8');
console.log(body);

Request SSE URL

const response = await httpx.request('sse url');
for await (const event of httpx.readAsSSE(response)) {
  console.log(event);
}

API

httpx.request(url[, options])

It returns Promise<Response>.

Requests the url with options, then return the response.

  • url String | Object - The URL to request, either a String or a Object that return by url.parse.
  • options Object - Optional
    • method String - Request method, defaults to GET. Could be GET, POST, DELETE or PUT.
    • data String | Buffer | Readable - Manually set the content of payload.
    • headers Object - Request headers.
    • timeout Number - Request timeout in milliseconds. Defaults to 3000. When timeout happen, will return RequestTimeout.
    • agent http.Agent - HTTP/HTTPS Agent object. Set false if you does not use agent.
    • beforeRequest Function - Before request hook, you can change every thing here.
    • compression Boolean - Enable compression support. Tell server side responses compressed data

httpx.read(response[, encoding])

It returns Promise<Buffer | String>.

Consume the response and read all data from the response.

  • response Response - the Client response. Don't setEncoding() for the response.
  • encoding String - Optional. If specify the encoding, will return String. If not specify encoding, return the buffer.

httpx.readAsSSE(response)

It returns AsyncGenerator<Event, void, unknown>.

Consume the response data with async iterator.

  • response Response - the Client response. Don't setEncoding() for the response.

Using with http proxy

import { SocksProxyAgent } from 'socks-proxy-agent';
import * as httpx from 'httpx';

await httpx.request('http://www.baidu.com/', {
  // pass a http proxy agent
  agent: new SocksProxyAgent('socks://your_proxy_server:3001')
});

License

The MIT license