node.js - 从 Node.js 连接到 SOAP 服务器产生 ECONNRESET 错误

标签 node.js http

我正在尝试使用 HTTP 请求从 Node.js 连接到 SOAP 服务器。然而,它或多或少会立即产生一个 ECONNRESET 错误。我相信这与超时有关,但似乎无法修复。我似乎无法弄清楚问题是什么。端口、主机和路径都正确。

我的 HTTP 请求是:

  var postRequest = {
      host : "t1.webservice.secure.ddts.defra.gov.uk",
      path: "/defraDataTransferPublicNWSE.asmx",
      SOAPAction: "http://www.defra.gov.uk/TransferData",
      port: 443,
      method: "POST",
      headers: {
          'Content-Type': 'text/xml; charset=utf-8',
          'Content-Length': Buffer.byteLength(body2)
      }
  };

  var buffer = "";

  var req = http.request( postRequest, function( res )    {
     console.log( res.statusCode );
     var buffer = "";
     res.on( "data", function( data ) { buffer = buffer + data; } );
     res.on( "end", function( data ) { console.log( buffer ); } );
  });
  req.on('error', function(err) {
      console.log( "----ERROR----" ); console.log(err);
  });
  req.write( body2 );
  req.end();

最佳答案

首先,您必须使用https 模块与http 模块。

下一个授权中心证书的问题。

很简单,你可以将rejectUnauthorized选项设置为false,但这不是很好。

最佳选择:

  • 下载 Symantec Intermediate CA (ICA) 证书(Symantec Class 3 安全服务器 CA - G4) 来自 page
  • 安装模块ssl-root-cas
  • 在请求前添加证书:

*

var sslRootCAs = require('ssl-root-cas/latest')
    .inject()`
    .addFile( __dirname + '/Symantec Class 3 Secure Server CA - G4.cer' );

关于node.js - 从 Node.js 连接到 SOAP 服务器产生 ECONNRESET 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35137086/

相关文章:

php - Angularjs2 http ajax 调用返回完整的 php 代码

node.js - Nodejs,如何在nodejs中复制多个文件而不崩溃

angularjs - 使用 Angularjs 的 $http.post 和 Jersey-Rest-Backend 上传文件

java - URLConnection 没有得到字符集

node.js - 安装 eslint-plugin-react 时不支持的引擎

javascript - 将 zip 文件解压缩到本地文件夹

node.js - 在 Windows 7 中安装 Node.exe

javascript - 是否有必要在 OpenShift 上使用 Forever.js?

javascript - Kineticjs 文本更改

http - Golang 创建动态函数(在运行时)