从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' );