【发布时间】:2014-10-23 18:35:46
【问题描述】:
通过网络和 stackoverflow 寻找这个我真的很疯狂。 关于这个主题的其他帖子谈论的是http请求,而不是httpS。
我正在使用 node.js 编写服务器端代码,我需要向另一个网站发出 https 请求才能登录
如果我在 chrome 中使用邮递员工具尝试使用 https://user:pass@webstudenti.unica.it/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);
})
【问题讨论】:
-
已解决。与 Request 和 Request-Debug 包的作者 Mikeal 和 Nylen 交谈后,发现 options 对象中缺少两个参数:Jar: request.jar() to handle cookie 因为服务器正在等待一个 JSESSIONID 和“用户代理”标头
-
您好,我也遇到了同样的问题,您能详细说明您是如何解决这个问题的吗?
-
嗨@ChrisTopher。我正在编写后端代码,后端由一个刮板组成。在 Node.Js 中编码的 Scraper 向需要基本身份验证的服务器发出 http 请求。为了从服务器获取正确的 DOM,我写了这个:
标签: javascript node.js authentication https