English | 简体中文
electron-request
Zero-dependency, Lightweight HTTP request client for Electron or Node.js
Why electron-request ?
Electron-request uses its built-in net module in Electron environment and uses its built-in HTTP module in Node.js environment.
Net module is used in electron to better support proxy, authentication, traffic monitoring proxies and other features. Please refer to net for details.
Features
- Zero-dependency, Lightweight
- Quick start, similar window.fetch
- No need to import other libraries, support file download progress and file verification
- Support to run on Electron or Node.js, use Electron's net module first
- Unified error handling
Install
npm install electron-request --save
yarn add electron-request
Usage
import request from 'electron-request';
void (async () => {
const url = 'https://github.com/';
const defaultOptions = {
method: 'GET',
body: null,
followRedirect: true,
maxRedirectCount: 20,
timeout: 0,
size: 0,
};
const response = await request(url, defaultOptions);
const text = await response.text();
})();
API
request(url[, options])
-
url: Request URL
-
options: Options
interface Options {
method?: string;
body?: string | null | Buffer | Stream;
headers?: Record<string, string | string[]>;
query?: Record<string, string>;
followRedirect?: boolean;
maxRedirectCount?: number;
timeout?: number;
size?: number;
useNative?: boolean;
username?: string;
password?: string;
useSessionCookies?: boolean;
session?: Session;
}
Response
interface Response {
ok: boolean;
headers: Record<string, string | string[]>;
stream: Stream;
arrayBuffer(): Promise<ArrayBuffer>;
blob(): Promise<Blob>;
text(): Promise<string>;
json<T>(): Promise<T>;
buffer(): Promise<Buffer>;
download: (
destination: Writable,
onProgress?: ProgressCallback,
validateOptions?: ValidateOptions,
) => Promise<void>;
}
interface ProgressInfo {
total: number;
delta: number;
transferred: number;
percent: number;
bytesPerSecond: number;
}
License
MIT License
electron-request vs. the Competition
Package | Size |
---|
request | |
axios | |
node-fetch | |
request-pure | |
electron-request | |