错误:套接字使用节点 v0.12.0 挂起

2023-12-01

我正在尝试使用 Node 执行一个非常简单的 HTTP POST:

var querystring = require('querystring');
var http = require('http');

var postData = querystring.stringify({
  "source": "XXXX", 
  "target": "XXXX", 
  "create_target": true, 
  "continuous": false
});

var options = { 
  hostname: 'XXXX',
  port: 443,
  path: '/_replicate',
  method: 'POST',
  headers: { 
    'Content-Type:':'application/json',
    'Content-Length':Buffer.byteLength(postData)
  } 
};

var req = http.request(options, function(res) { 
  res.setEncoding('utf8');
  res.on('data', function (chunk) { 
    console.log('BODY: ' + chunk);
  });
});

req.on('error', function(e) { 
  console.log('problem with request: ' + e.stack);
});

req.write(postData);
req.end();

但我得到的回应是这样的:

problem with request: Error: socket hang up
    at createHangUpError (_http_client.js:215:15)
    at Socket.socketOnEnd (_http_client.js:293:23)
    at Socket.emit (events.js:129:20)
    at _stream_readable.js:908:16
    at process._tickCallback (node.js:355:11)

我正在使用节点 v0.12.0。


我在 Stackoverflow 上看到过其他类似的问题,但我相信它们是不同的,因为:

  • Node.js POST 导致 [错误:套接字挂起] 代码:'ECONNRESET'- 发布非 ASCII 字符时出现问题。
  • nodejs https 错误:套接字挂起本地主机- 发布到本地主机时出现问题
  • NodeJS HTTP 请求 POST ERROR 套接字挂起- 似乎是在执行 PUT 而不是 POST
  • 套接字挂起节点0.8.17- 没有调用 req.end()
  • 错误:套接字挂起- 没有对其 POST 数据进行字符串化。
  • Node.js 套接字通过 https 挂起- 似乎是早于 v0.12.0 的 Node 版本(基于问题日期)

我发现您正在向安全服务器发出请求。您可能应该改用 https 对象的 request 方法。

事实上,我能够使用 http 对象重新创建问题,并且当我仅使用 https 对象时,我能够在不关闭套接字的情况下获得响应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

错误:套接字使用节点 v0.12.0 挂起 的相关文章