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

我正尝试使用HTTP请求从Node.js连接到SOAP服务器。 然而,它或多或less地产生了一个ECONNRESET错误。 我相信这是与超时,但似乎无法解决它。 我似乎无法弄清楚问题所在。 端口,主机和path都是正确的。

我的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模块vs http模块。

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

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

最好的select:

  • 从此页面下载Symantec Intermediate CA(ICA)证书( Symantec Class 3 Secure Server CA - G4
  • 安装模块ssl-root-cas
  • 请求前添加证书:

*

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