详解node HTTP请求客户端 Request

2020-06-17 06:02:12易采站长站整理

hawk – 用于Hawk 签名的选项。credentials 键必须包含必要的签名信息,参见hawk文档
aws – object 包含 AWS 签名信息。需要有key、secret属性,同样要有bucket选项,除非已在路径中指定bucket或请求不使用 bucket (如 GET 服务)。如果要使用 AWS v4版本,则指定sign_version 选项值为 4,默认值为2。注意: 首先要 npm install aws4
httpSignature – 用于HTTP Signature Scheme的先项,使用Joyent’s签名库。keyId 和 key 属性必须同时指定

重定向相关选项:

followRedirect – 跟踪 HTTP 3xx 响应并重定向(默认: true)。这个属性也可以指定为一个获取单个response的函数,如果重定向继续需要返回true 其它情况返回 false
followAllRedirects – 跟踪非GET请求的 HTTP 3xx 响应(默认: false)
maxRedirects – 最大重定向跟踪数量(默认: 10)
removeRefererHeader – 当发生重定向进移聊referer头(默认: false)。注意: 如果设为 true,referer头会设置为重定向链的初始请求。

编码/压缩相关选项:

encoding – 用于响应数据 setEncoding 头的编码。如果null,则 body 会返回一个 Buffer。任何情况下(除非设置为undefined) 都会将encoding 参数传递给 toString() 方法(默认为:utf8)。
gzip – 如果为 true,会添加一个Accept-Encoding 头用于发送到服务器的请求内容的压缩和解压从服务器返回的数据
jar – 如果 true,则记录使用的 cookies(或自定义 cookie jar)

代理相关选项:

agent – 用于http(s).Agent 的代理实例
agentClass – 或指定代理类
agentOptions – 并传入代理选项。注: 参见 HTTPS TLS/SSL API文档 和 代理一节
forever – 如果设置为 true 会使用 forever-agent
pool – 描述用于请求的代理的对象。如果此选项被省略,请求将使用全局代理(当允许时)。否则,请求将搜索您的自定义代理的池。如果没有找到自定义代理,将创建一个新的代理,并将其添加到池中。注意: pool 仅在指定agent选项后可用

maxSockets属性同样可用于pool对象,用于设置代理最大可创建的 sockets 连接数(如:pool: {maxSockets: Infinity})
当发送 multiple 请求时,会创建一个新的pool 对象,maxSockets 将不会按预期工作。
timeout – 超时时间(毫秒)

本地代理选项:

localAddress – 用于连接网络连接的本地接口
proxy – 使用的HTTP代理。支持代理使用基本认证,即认证信息通过url参数发送
strictSSL – 如果设置为true,则需要有效的 SSL证书。注意: 要使用自己的证书管理,则需要指定一个所创建的代理的选项。
tunnel – 控制 HTTP CONNECT 连接的隧道,可为以下值:

undefined (默认) – true 表示目标为 https, false 为其它方式