baseUrl - 用于基本uri的远整字符串。大多使用request.defaults,如:对于大多数请求你相使用相同的域名。如果baseUrl 是 https://example.com/api/,那么请求/end/point?test=true 会匹配到https://example.com/api/end/point?test=true;当baseUrl指定后,uri选项必须是字符串。
method - HTTP请求方法(默认: "GET")
headers - HTTP请求头 (默认: {})
查询字符串相关选项:
qs - 包含查询字符串值的对象,会被添加到uri中
qsParseOptions - 用于qs.parse方法的选项对象,或者传入querystring.parse方法用于{sep:';', eq:':', options:{}}格式的对象
qsStringifyOptions - 用于qs.stringify 方法的选项对象,或者传入用于querystring.stringify 方法使用{sep:';', eq:':', options:{}}格式的选项。
useQuerystring - 如果true,使用querystring 来解析查询字符串,其它使用qs (默认: false)。设置为true时,你需要将数组序列化为foo=bar&foo=baz 而默认为 foo[0]=bar&foo[1]=baz
请求体相关选项:
body - 可用于:PATCH, POST 和 PUT 请求的请求体(发送的数据)。必须是Buffer, String 或 ReadStream。如果json 是 true,则body 必须是一个JSON化的对象。
form - 当通过对象或查询字符串发送数据时,这一选项会设置body 为包含发送值的查询字符串,并添加自动Content-type: application/x-www-form-urlencoded请求头。
formData - 当发送multipart/form-data请求时使用。参见前面的Forms 一节。
multipart - 包含请求头与body属性的对象。会发送一个multipart/related请求。请求时使用。参见Forms。 也可以传入一个{chunked: false, data: []},其 chunked 用于指定发送请求的 chunked 转换编码。如果非chunked请求,,不允许使用使用具有请求体流的数据项。
preambleCRLF - 在multipart/form-data请求之前添加一个 newline/CRLF 边界描述
postambleCRLF - 在multipart/form-data请求之后添加一个 newline/CRLF 边界描述
json - 设置 body(请求体) 为JSON格式,并添加Content-type: application/json请求头。另外,也会将响应体转换为JSON格式
jsonReviver - 一个reviver函数,会传递给JSON.parse() 方法用于解板响应体。
jsonReplacer - 一个 replacer 函数,会传递给JSON.stringify()方法用于序列化JSON请求体
认证相关选项:
auth - 包含 user || username, pass || password, 和 sendImmediately (可选)的哈希对象。
oauth - 用于 OAuth HMAC-SHA1 签名的选项
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