Zgodnie z tytułem, jak mam to zrobić?
Oto mój kod:
var http = require('http');
// to access this url I need to put basic auth.
var client = http.createClient(80, 'www.example.com');
var request = client.request('GET', '/', {
'host': 'www.example.com'
});
request.end();
request.on('response', function (response) {
console.log('STATUS: ' + response.statusCode);
console.log('HEADERS: ' + JSON.stringify(response.headers));
response.setEncoding('utf8');
response.on('data', function (chunk) {
console.log('BODY: ' + chunk);
});
});
Odpowiedzi:
Musisz ustawić
Authorization
pole w nagłówku.Zawiera typ uwierzytelniania
Basic
w tym przypadku iusername:password
kombinację, która zostaje zakodowana w Base64:źródło
Z http.request API Docs Node.js możesz użyć czegoś podobnego do
źródło
źródło
Łatwiejszym rozwiązaniem jest użycie formatu user: pass @ host bezpośrednio w adresie URL.
Korzystanie z biblioteki żądań :
Napisałem też o tym mały post na blogu .
źródło
co jest warte Używam node.js 0.6.7 na OSX i nie mogłem uzyskać `` Autoryzacji '': autoryzacja do pracy z naszym proxy, musiała być ustawiona na `` Proxy-Authorization '': autoryzuj mój kod testowy to :
źródło
źródło
Niedawno się z tym spotkałem. To, które spośród nagłówków Proxy-Authorization i Authorization zależy od serwera, z którym rozmawia klient. Jeśli jest to serwer WWW, musisz ustawić autoryzację, a jeśli jest to proxy, musisz ustawić nagłówek Proxy-Authorization
źródło
Ten kod działa w moim przypadku po wielu badaniach. Będziesz musiał zainstalować pakiet npm żądania .
źródło