节点 SOAP WSDL 请求不完整(只有一些块)



我在使用 node-soap npm 模块访问 SOAP Web 服务时遇到问题。

这是我正在尝试的:

var url = 'https://ws-uat.ewinerysolutions.com/2.00/EWSWebServices.asmx?wsdl';
soap.createClient(url, function(err, client) {
    if(err) {
        console.log(err);
    }
    console.log(client.describe());
}

这不会出错,但会记录一个空对象。检查client显示返回的 XML 被截断,这反过来又会阻止 node-soap 模块构建正确的客户端。XML 的确切长度以 16348 字节的数量波动。如果我移动 WSDL 以便它引用本地文件,那么client.describe()按预期执行,并且还可以调用 Web 服务。但是,对此类请求的较长响应也会以类似的方式截断。这让我相信在收到所有数据块之前,有些东西正在关闭连接,所以我检查了请求 npm 模块(也与 node 打包在一起)。

为了隔离问题,我尝试使用请求模块检索 WSDL:

var request = require('request');
var body = "";
request.get('https://ws-uat.ewinerysolutions.com/2.00/EWSWebServices.asmx?wsdl')
    .on('data', function(data){
        body += data;
    }).on('end', function() {
        console.log(body);  
    })

查看返回截断 XML 正文的实时版本。

我以前在这些相同的库中工作过,只是为了确保我已经尝试使用一系列旧版本的依赖项库运行相同的程序。

我对这个东西也很陌生,所以任何帮助/指示将不胜感激!

事实证明,

我需要在请求标头中添加连接:"保持活动"。在 node-soap 库中,这可以直接在 lib/http.js:46 中设置。

最新更新