# @apify/http-request 中文文档

规范地址：https://npmcn.com/package/%40apify/http-request/

版本：2\.1\.2
npm 元数据更新时间：2026-02-24T16:23:43.254Z
中文译文更新时间：2026-11-06T10:06:48.001Z
软件包许可：ISC

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40apify/http-request
原文对照：https://npmcn.com/package/%40apify/http-request/?lang=original
项目主页：https://github.com/apifytech/http-request#readme
源码仓库：https://github.com/apifytech/http-request

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：55.8 kB，18 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：5 个
- 首次发布：2019-07-19T15:46:46.680Z
- 最新版本发布：2021-03-01T18:27:18.282Z
- 近 30 天下载量：6109（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：22（近 12 个月 0 个）

## 中文简介

整个软件包的包装

## 安装

```sh
npm install @apify/http-request
```

也可以使用：`pnpm add @apify/http-request`、`yarn add @apify/http-request`、`bun add @apify/http-request`

## README

# HTTP 为 Node.js 请求库

[![Build Status](https://travis-ci.com/apify/http-request.svg?branch=master)](https://travis-ci.com/apify/http-request)

发送 HTTP 请求并返回响应 。 此软件包被使用 [认证 SDK](https://www.npmjs.com/package/apify) 而不是旧的 [请求](https://www.npmjs.com/package/request)

国家防范机制一揽子计划。 执行隧道代理错误修复、更好的代理代理和支持 `brotli` 压缩. 固定 `deflate` 压缩.

该功能具有相似的功能,并有与该功能几乎相同的选项 [已经](https://www.npmjs.com/package/got) 国家防范机制一揽子计划, 但它带来了一些额外的改进和修正:

-   它不仅支持Gzip压缩,还支持Brotli和Deflate. 为了激活这个特性, 简单地添加 `Accept-Encoding: gzip, deflate, br` 改为 `options.headers` (或组合)和设置 `options.useBrotli` 真实的.
-   允许在数据下载前根据响应头进行堕胎请求. 见 `options.abortFunction` 参数.
-   隧道代理错误修复
-   固定的旧调压压缩.
-   对 Node.js <v12 的 Brotli 支持

## 示例使用

### 解码并解压反应

```javascript
   const httpRequest = require("@apify/http-request");

   const {headers, body, statusCode} =  await httpRequest({ url: 'https://api.apify.com/v2/browser-info'});

```

## 把JSON从API拿来

```javascript
    const httpRequest = require("@apify/http-request");

    const {headers, body, statusCode} =  await httpRequest({ url: 'https://api.apify.com/v2/browser-info', json: true });

```

### 流出反应

```javascript
     const httpRequest = require("@apify/http-request");

     const responseStream =  await httpRequest({ url: 'https://apify.com', stream: true});
```

## API 文档

这是一个 `GET` 默认请求,但可以通过不同方法或通过 `options.method`。 。 。 .

### httprequest(\[可选 )

返回承诺 [`response` 对象](https://npmcn.com/package/%40apify/http-request/#readme-response) 或一个 [流线](https://npmcn.com/package/%40apify/http-request/#readme-streams-1) 若为 `options.stream` 被设定为真实.

#### 选项.url

目标终点的 URL 。 支持HTTP和HTTPS两种方案.

#### 选项.方法

HTTP 方法 。 默认值是 `GET`。 。 。 .

#### 选项。标题

HTTP头. 默认值是 `{}`。 。 。 .

注意,该函数本身会产生多个头,除非 定义在 `headers` 参数,在此情况下,函数使其不受影响.

-   例如,即使定义 `{ 'Content-Length': null }`,函数不定义 “ Content- Length” 标题和请求将不包含( 由于 `null` 数值).

#### 选项。负载

PATCH、POST和PUT请求的HTTP有效载荷。 一定是个 `Buffer` 或者说 `String`。 。 。 .

#### 选项

遵循 HTTP 3xx 回复作为重定向( 默认: true) .

#### 选项.max 方向

要遵循的定向的最大次数 。 默认值是 `20`

#### 选项.超时Secs

包含等待服务器发送秒数的整数 在中止请求前启动响应正文. 注意如果无法建立基本的TCP连接,则整个操作系统 TCP连接超时会推翻超时选项(Linux中的默认从20-120秒可以到任何地方).

默认值是 `30`。 。 。 .

#### 选项. proxyUrl

要使用的 HTTP 代理 。 支持 Basic Auth 代理认证 .

#### 选项

如果错误, 则要求 SSL/ TLS 证书有效

默认值是 `false`

#### 选项

决定请求是否应中止的函数 。 当服务器被调用时 与 HTTP 头响应,但在实际数据下载之前. 课,它应该回来 `true` 如果请求应当中止,或 `false` 否则. 也可以将自定义错误丢入 `options.abortFunction`。 。 。 . 在这种情况下, `httpRequest` 中止请求并丢弃自定义错误.

默认值是 `null`。 。 。 .

#### 选项。推出 Http 错误

如果设定为真实函数, 则在 4XX 和 5XX 响应代码上抛出并出错 .

默认值是 `false`。 。 。 .

#### 选项.decodeBody

如果设置为已解码的正文, 则返回 。 如果 \[options.parsedBody\] 是真实的, 则无法设定为虚假 .

默认值是 `true`

#### 选项.json

如果设定为真实解析后的身体会被返回 。 内容类型头被设定为 `application/json` 有这个就没用了 `options.stream` 设定为真实.

默认值是 `false`。 。 。 .

#### 选项。 流线

如果设置为真实已解压的流则返回 .

默认值是 `false`

#### 选项

如果设置为真实的 Brotli 解压被启用 。 布罗特利有一个来自诺德.js本地的支持 `V10.16.0`。如果使用旧版本,则必须具有对等关系 `iltorb` 已安装.

默认值是 `false`

### 回应

许诺 <object> - 响应对象通常为

-   [节点.js HTTP 响应流](https://nodejs.org/api/http.html#http_class_http_incomingmessage), (中文(简体) ), 但是,如果从缓存中返回,将是一个 [类似响应的对象](https://github.com/lukechilds/responselike) 它的行为相同.

更多信息请见原始 npm 包 - [已经](https://www.npmjs.com/package/got)。 。 。 .

## 常见问题

### @apify/http-request 是什么？

整个软件包的包装

### 如何安装 @apify/http-request？

在项目目录运行 npm install @apify/http-request，或使用 pnpm add / yarn add / bun add。

### @apify/http-request 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/apify\_\_http-request 是否存在。

### @apify/http-request 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @apify/http-request 可以商用吗？

@apify/http-request 使用 ISC 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @apify/http-request 的下载量有多少？

根据 npm 官方下载统计，@apify/http-request 在 2026/10/06 – 2026/11/04 这 30 天内被下载 6,109 次，日均约 204 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @apify/http-request 还在维护吗？

最新版本 2\.1\.2 发布于 2021/03/02（5 年前）；至今共发布 22 个版本，其中过去 12 个月发布了 0 个；首次发布于 2019/07/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

