Я действительно схожу с ума, глядя на это через Интернет и stackoverflow. Другие сообщения по этой теме говорят о http-запросе, а не httpS.https request basic authentication node.js
я кодирования на стороне сервера с Node.js и мне нужно сделать запрос HTTPS на другой сайт для входа в систему
Если я использую почтальона инструмент в хроме, пытаясь с https://user:[email protected]/esse3/auth/Logon.do все работает отлично, и я войти.
Если я использую библиотеку запросов в узле, я не могу войти в систему, и я получаю страницу с настраиваемым сообщением об ошибке в моих данных для получения/отправки.
Возможно, я ошибаюсь, задавая параметры для передачи запроса.
var request = require('request');
var cheerio = require('cheerio');
var user = 'xxx';
var pass = 'yyy';
var options = {
url : 'https://webstudenti.unica.it',
path : '/esse3/auth/Logon.do',
method : 'GET',
port: 443,
authorization : {
username: user,
password: pass
}
}
request(options, function(err, res, html){
if(err){
console.log(err)
return
}
console.log(html)
var $ = cheerio.load(html)
var c = $('head title').text();
console.log(c);
})
http://jsfiddle.net/985bs0sc/1/
РЕШЕНИЕ. После разговора с Mikeal и Nylen, автором пакета Request and Request-Debug, было обнаружено, что в объекте options отсутствовали два параметра: Jar: request.jar() для обработки cookie, потому что сервер ожидал JSESSIONID и заголовок «User-Agent» – mammuthone
Привет, у меня есть то, что, по моему мнению, является той же проблемой, можете ли вы подробнее рассказать о том, что вы сделали для решения этой проблемы? –
Привет @ChrisTopher. Я кодировал бэкэнд, а бэкэнд состоит из скребка. Скребок, закодированный в Node.Js, делает http-запрос серверу, который требует базовой аутентификации. Чтобы получить правильную DOM в ответ от сервера, я написал следующее: – mammuthone