我必须使用 Node.JS 为 API 文档编写一些代码,但我在过去几天尝试了在网络上找到的所有解决方案(当然包括 Stack),但没有成功......
我的 API 使用 HTTP Digest Auth,这就是问题所在,我能够连接,这不是什么大问题,但每次我得到相同的返回:
Got response : 401
HTTP Digest Authentication required for "api.example.com"
您可以在下面显示我的基本代码,无需授权!因为我不知道在我做了所有尝试之后我能做什么:
var http = require('http')
var options = {
host: 'api.example.com',
path: '/example/1.xml',
};
var request = http.get(options, function(res){
var body = "";
res.on('data', function(data){
body += data;
})
res.on('end', function(){
console.log('Got response : ' + res.statusCode);
console.log(body);
})
res.on('error', function(e){
console.log('Got error : ' +e.message);
});
});
我最后的尝试之一是使用这个模块https://npmjs.org/package/request https://npmjs.org/package/request但他也不工作,因为每次我都得到 401 !
有关更多信息,我能够使用 Ruby、Python、php 和 Java 连接并从我的 API 获取我需要的信息,因此我确信我的 API 运行良好并且我传递的信息是正确的。
我使用 Node v0.10.11 的最后一个稳定版!
如果有人可以帮助我或有最新的解决方案,我会很高兴。
编辑 :
我将添加有关模块测试的一些详细信息迈克尔/请求 https://npmjs.org/package/request
第一次尝试 :
var request = require('request')
var options = {
'url': 'http://api.example.fr/example/1.xml',
'auth': {
'user': 'test',
'pass': 'test',
'sendImmediately': false
}
};
var request = request.get(options, function(error, response, body){
if (!error && response.statusCode == 200){
console.log('body : ' + body)
}
else{
console.log('Code : ' + response.statusCode)
console.log('error : ' + error)
console.log('body : ' + body)
}
});
第二次尝试:
var request = require('request')
request.get('http://api.example.fr/example/1.xml', function(error, response, body){
if (!error && response.statusCode == 200){
console.log('body : ' + body)
}
else{
console.log('Code : ' + response.statusCode)
console.log('error : ' + error)
console.log('body : ' + body)
}
}).auth('test', 'test', false);
但返回还是一样的401