Nodejs请求Uncaught Error:在端口443上写入EPROTO

时间:2015-12-11 17:17:29

标签: node.js request

我收到错误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上,它为什么会成功?

1 个答案:

答案 0 :(得分:0)

Skype也在港口443上进行本地监听,这就是为什么会发生这种情况。