Мне нужно написать код с Node.JS для документации по API, но я пробовал в последние несколько дней все решения, которые я мог найти в Интернете (включая, конечно, Stack) без успеха ...Как сделать запрос HTTP Digest с помощью Node.JS?
Мой API использовать HTTP Digest Auth и это проблема, я был в состоянии соединиться, это не было большим делом, но каждый раз, когда я получил то же возвращение:
Got response : 401
HTTP Digest Authentication required for "api.example.com"
Вы можете показать свой базовый код ниже без AUTH! Потому что я не знаю, что я могу сделать после того, как все попытки я сделал:
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, но он не работает тоже, как каждый раз я получил 401!
Для получения дополнительной информации я смог подключиться и получить необходимую мне информацию из моего API с Ruby, Python, php и Java, поэтому я уверен, что мой API работает хорошо, и информация, которую я передаю, верна. Я использую последнюю конюшню узла v0.10.11!
Если кто-то может мне помочь или у меня есть решение, я буду рад.
EDIT: Добавлю некоторые подробности о моем тесте с модулем Mickael/request
Первый Try:
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)
}
});
Второй Try:
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
Благодарим вас за предложение, но, как я сказал в своем оригинальном посте, я пробовал это решение, вы можете найти ссылку в конце моего сообщения! – Milo
Отправьте свой код с помощью 'request'. «Я попробовал, и это не сработало» недостаточно для того, чтобы мы действительно помогли вам. –
Я редактировал для добавления моего кода с помощью запроса. спасибо за вашу помощь :) – Milo