request.METHOD(url, options, callback);
options表示请求选项,其中只有>url/uri是必须参数,其它都是可选值。下面是一些常用选项:
uri || url – 完整的uri字符串或可通过url.parse()解析的url对象
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 签名的选项









