Je dois écrire du code avec Node.JS pour une documentation API, mais j'ai essayé ces derniers jours toutes les solutions que j'ai pu trouver sur le web (y compris Stack bien sûr) sans succès ...Comment faire pour demander HTTP Digest auth avec Node.JS?
Mon API utiliser HTTP Digest auth et c'est le problème, j'ai pu me connecter, que ce n'était pas une grosse affaire, mais chaque fois que j'obtenu le même rendement:
Got response : 401
HTTP Digest Authentication required for "api.example.com"
Vous pouvez afficher mon code de base ci-dessous sans auth! Parce que je ne sais pas ce que je peux faire après tout essayer, je l'ai fait:
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);
});
});
Un de mon dernier essai était d'utiliser ce module https://npmjs.org/package/request mais il ne fonctionne pas trop que chaque fois que je suis arrivé 401! Pour plus d'informations j'ai pu me connecter et obtenir les informations dont j'avais besoin de mon API avec Ruby, Python, PHP et Java, donc je suis sûr que mon API fonctionne bien et les informations que je transmets sont correctes. J'utilise la dernière stable de Node v0.10.11!
Si quelqu'un peut m'aider ou avoir une solution à jour, je serai heureux.
EDIT: je vais ajouter quelques détails au sujet de mon test avec le module Mickael/request
premier essai:
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)
}
});
Deuxième essai:
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);
mais le retour est toujours le même 401
Merci pour le suggestion, mais comme je l'ai dit dans mon message original, j'ai essayé cette solution, vous pouvez trouver le lien à la fin de mon message! – Milo
Publiez votre code en utilisant 'request'. "Je l'ai essayé et ça n'a pas marché" ne suffit pas pour que nous vous aidions réellement. –
Je modifiais pour ajouter mon code en utilisant la requête. merci pour votre aide :) – Milo