我收到错误Uncaught Error:尝试通过端口443上的nodejs请求模块使用我的API时写EPROTO。如果我将端口更改为非443端口并且请求端口443上的应用程序通过浏览器和卷曲。
为什么我会获得EPROTO以及如何修复它以使我的自动化测试再次运行?
当被问及代码时,它只是一个带有简单请求的https服务器:
var server = https.createServer ({secureProtocol: 'TLSv1_2_method',
key : fs.readFileSync('key'),
cert : fs.readFileSync('cert'),
ca: [
fs.readFileSync('othercert')
]
}, app);
一个简单的要求:
var request = require('request');
var basepath = "https://localhost";
var req_opts = {
method: "POST",
uri: basepath + '/myroute',
body: {
},
rejectUnauthorized: false,
json: true
}
request(req_opts, function(err, response, body){
if(err){
console.log(err);
throw(err);
}
console.log(body);
});
这只发生在我的本地Windows机器上,而不是在远程ubuntu服务器上。两者都有节点版本4.2.3
搜索它看起来似乎请求可能无法协商密码,但是如果不在端口443上,它为什么会成功?
答案 0 :(得分:0)
Skype也在港口443上进行本地监听,这就是为什么会发生这种情况。