Devo scrivere un codice con Node.JS per una documentazione API, ma ho provato negli ultimi giorni tutte le soluzioni che ho trovato sul Web (incluso Stack, naturalmente) senza successo ...Come richiedere l'autenticazione HTTP Digest con Node.JS?
My API utilizzare HTTP Digest auth e questo è il problema, sono stato in grado di connettersi, di quella non era un grosso problema, ma ogni volta che ho avuto lo stesso rendimento:
Got response : 401
HTTP Digest Authentication required for "api.example.com"
È possibile mostrare il mio codice di base sottostante senza autenticazione! Perché io non so cosa posso fare, dopo tutto la prova che ho fatto:
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 mio ultimo tentativo è stato quello di utilizzare questo modulo https://npmjs.org/package/request ma non funziona troppo, come ogni volta che ho avuto 401!
Per ulteriori informazioni, sono riuscito a connettermi e ottenere le informazioni necessarie dalla mia API con Ruby, Python, php e Java, quindi sono sicuro che la mia API funzioni correttamente e le informazioni che ho trasmesso siano corrette. Io uso l'ultima stalla del Nodo v0.10.11!
Se qualcuno può aiutarmi o avere una soluzione aggiornata sarei felice.
EDIT: vorrei aggiungere alcuni dettagli circa il mio test con il modulo Mickael/request
prima prova:
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)
}
});
Seconda Prova:
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);
ma il ritorno è sempre lo stesso 401
Grazie per il suggerimento ma come ho detto nel mio post originale, ho provato questa soluzione è possibile trovare il link alla fine del mio post! – Milo
Pubblica il tuo codice usando 'request'. "L'ho provato e non ha funzionato" non è abbastanza per noi per aiutarti davvero. –
Stavo modificando per aggiungere il mio codice usando la richiesta. grazie per il vostro aiuto :) – Milo