Node.js POST请求报Socket Hang Up错误的排查与修复

作者:终端旅客时间:2026-10-28 14:23:02浏览:638

本文解决Node.js发送HTTP POST请求时出现的Socket Hang Up错误。该问题通常由请求头缺失或不完整导致,特别是未正确设置Content-Type和Content-Length。通过补充完整的headers配置,可确保请求被服务器正常接收,避免连接被提前关闭。

Node.js POST请求Socket Hang Up错误排查与修复

参考Node.js官方文档中关于发送HTTP POST请求的示例,开发了一个模拟POST提交的功能。但在实际运行过程中,程序抛出了socket hang up错误。

经过排查,发现错误原因在于请求头(headers)配置不完整。在发送选项(options)中必须显式添加headers字段,否则服务器可能因接收到不完整的POST请求头而直接丢弃连接。这一行为可能与目标服务器的实现机制有关。

以下是完整的修复后代码,供遇到类似类型错误的开发者参考。

代码如下:

var querystring = require('querystring')
, http = require('http');
var data = querystring.stringify({
 info:'hi',
 test:5
});
var opt = {
 hostname:'www.test.com',
 port :9094,
 path:'/perationSqlQuery',
 method: 'POST',
 headers: { 
 'Content-Type':'application/x-www-form-urlencoded',
 'Content-Length': data.length 
 } 
};
var req = http.request(opt, function (res) { 
 res.on('data', function (data) {
 console.log(data.toString());
 });
});
req.on('error', function(e) {
 console.log('problem with request: ' + e.message);
});
req.write(data);
req.end();
作者最新文章