我正在尝试使用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();
答案 0 :(得分:1)
首先,您必须使用https
模块与http
模块。
授权中心证书的下一个问题。
很简单,您可以将rejectUnauthorized
选项设置为false
,但这不是很好。
最佳选择:
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' );