, user_id: perm_data.user_id
}
;
request.get({url:url, oauth:oauth, qs:qs, json:true}, function (e, r, user) {
console.log(user)
})
})
})
使用RSA-SHA1 签名时,可传入如下一个OAuth对象:
指定signature_method : ‘RSA-SHA1’
代替consumer_secret,指定private_key字符串为 PEM format
而使用PLAINTEXT 签名,可传入如下一个OAuth对象:
指定signature_method : ‘PLAINTEXT’
7. 代理
如果指定proxy(代理)选项后,所有的请求(及其后的重定向)都会连接到该代理服务器。
如果终端是一个httpsURL,代理会使用CONNECT请求连接到代理服务器。
首先会生成类似如下一个请求:
HTTP/1.1 CONNECT endpoint-server.com:80
Host: proxy-server.com
User-Agent: whatever user agent you specify然后建立一个到endpoint-server(终端服务器)的80端口的TCP连接,并按如下返回响应:
HTTP/1.1 200 OK默认情况下,当代理使用http进行通讯时,request会简单的生成一个标准的http代理请求。如,会像如下这样生成一个请求:
HTTP/1.1 GET http://endpoint-server.com/some-url
Host: proxy-server.com
Other-Headers: all go hererequest body or whatever
通过proxyHeaderExclusiveList选项可以明确指定一些代理头,默认会按如下方式设置:
accept
accept-charset
accept-encoding
accept-language
accept-ranges
cache-control
content-encoding
content-language
content-length
content-location
content-md5
content-range
content-type
connection
date
expect
max-forwards
pragma
proxy-authorization
referer
te
transfer-encoding
user-agent
via8. UNIX域套接字
request支持到UNIX域套接字的请求:
/* Pattern */ 'http://unix:SOCKET:PATH'
/* Example */ request.get('http://unix:/absolute/path/to/unix.socket:/request/path')注意:SOCKET应该是一个到文件系统根目录的绝对路径。
9. TLS/SSL协议
对于使用了TLS/SSL等安全协议的请求,可以使用相关选项如cert、key、passphrase也可以使用agentOptions选项甚至使用https.globalAgent.options来设置:
var fs = require('fs')
, path = require('path')
, certFile = path.resolve(__dirname, 'ssl/client.crt')
, keyFile = path.resolve(__dirname, 'ssl/client.key')
, caFile = path.resolve(__dirname, 'ssl/ca.cert.pem')
, request = require('request');var options = {









