我无法在文档中找到有关如何执行此操作的任何内容。
http://nodejs.org/api.html#request-method-149
我需要在ruby中使用与此类似的授权创建一个Node js POST:
url = URI.parse('http://www.example.com/todo.cgi')
req = Net::HTTP::Post.new(url.path)
req.basic_auth 'jack', 'pass'
我试图基本上这样做:
var client = http.createClient(80, 'http://api.foo.com');
var rq = client.request('POST', '/path/',
{
'authorization' : [account, password]
'key': value,
etc....
}
答案 0 :(得分:3)
只需使用account:password
对base64中的字符串Buffer
进行编码,然后设置标题为Authorization
的标题,前缀为Basic
。
答案 1 :(得分:2)
这是一个让我们更无知的例子(可以进行改进!)。适用于twitter的流媒体API。在提出请求时,按照惯例听取响应和数据。
var hackClient = http.createClient(80, 'stream.twitter.com');
var request = hackClient.request("GET", '/1/statuses/filter.json?'+querystring.stringify(params),{
"Host":"stream.twitter.com",
"Authorization":"Basic " + new Buffer('user' + ":" + 'pass').toString('base64'),
"User-Agent": "Twitter-Node"
});
request.on('response', function(response) {
response.on('data', function(chunk) {
stream.receive(chunk); //example usage, no stream object in this example exists
});
response.on('error', function(error) {
stream.emit('error', error); //again, for example
});
response.on('end', function () {
stream.emit('end');
});
});
request.on('error', function(error) {
stream.emit('error', error);
});