socket hang up read ECONNRESET

最近在用nodejs的http模块请求,在使用原来的服务地址时可以请求过去,服务端有请求内容,客户端也有返回数据,都是正确的,没有问题。

但是在使用了本地主机的地址:127.0.0.1, localhost, 或者本机IP地址时,均会报错,错误信息是:

socket hang up
read ECONNRESET

下面是我利用http模块的代码:

function send_req_http(serverUrl, port, req_client_json, send_res_handler){
    var options = {
        host: serverUrl,
        port: port,
        path: '/',
        method: 'POST',
        json: true,
        headers: {
            'Content-Type': 'application/json',
            'Content-Length': req_client_json.length
        }
    }
    const post_req = http.request(options, send_res_handler)
    post_req.on('error', (err)=>{
        alert(err);
    })
    post_req.write(req_client_json);
    post_req.end();
}

在使用本地主机作为服务端后,在服务端的日志中,查看之后,服务端接收到了客户端发送的请求,并根据发送请求查询了数据库,并返回了相应内容(这些都是正确的),但是,客户端一直显示这两个错误。

再次说明,利用原来的服务地址使用这个方法是完全可行的,我仅仅是换了一个IP地址。

此外,看了好多百度和github上面类似问题的解决办法,其中options中添加agent:false呼声最高,尝试了并没有作用,此外,还有将headers中的
'Content-Length': req_client_json.length
转换为
'Content-Length': Buffer.byteLength(req_client_json)
也并没有用,还有一些添加安全协议的,甚至还和版本有关。。。。。

总之,跪求各位大佬帮忙,自己对于这个错误的原理也不是很清楚(只是知道连接出了问题,当然也百度了一些),对于问题的解决办法以及为什么这么解决更是摸不着头脑。黑胖圆在此谢过各位!!!

阅读 3k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题