Ich muss Code mit Node.JS für eine API-Dokumentation schreiben, aber ich habe die letzten paar Tage alle Lösungen, die ich im Internet (einschließlich Stack natürlich) ohne Erfolg finden konnte ...Wie HTTP-Digest-Auth mit Node.JS anfordern?
Meine API verwenden HTTP Digest Auth und das ist das Problem, ich war in der Lage zu verbinden, war, dass das keine große Sache, aber jedes Mal bekam ich die gleiche Rendite:
Got response : 401
HTTP Digest Authentication required for "api.example.com"
Sie können meinen Basiscode unten ohne Auth zeigen! Weil ich weiß nicht, was ich nach all den Versuch machen kann ich tat:
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);
});
});
Einer meiner letzten Versuch war dieses Modul https://npmjs.org/package/request zu verwenden, aber er funktioniert nicht zu, wie immer wenn ich 401 bekam!
Für weitere Informationen konnte ich die benötigten Informationen von meiner API mit Ruby, Python, PHP und Java verbinden und abrufen, so dass ich sicher bin, dass meine API gut funktioniert und die von mir übergebenen Informationen korrekt sind. Ich benutze den letzten Stable von Node v0.10.11!
Wenn jemand mir helfen kann oder eine Lösung auf dem neuesten Stand habe, werde ich mich freuen.
EDIT: Ich werde einige Details über meinen Test mit dem Modul hinzufügen Mickael/request
erster Versuch:
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)
}
});
zweiter Versuch:
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);
aber die Rückkehr ist immer noch die gleiche 401
Vielen Dank für den Vorschlag, aber wie ich in meinem ursprünglichen Beitrag sagte, habe ich versucht, diese Lösung finden Sie den Link am Ende meines Beitrags! – Milo
Poste deinen Code mit 'request'. "Ich habe es versucht und es hat nicht funktioniert" ist nicht genug für uns, um Ihnen wirklich zu helfen. –
Ich habe bearbeitet, um meinen Code mit Anfrage hinzuzufügen. Danke für Ihre Hilfe :) – Milo