节点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()); }
这不会出错,但会logging一个空的对象。 检查client
显示返回的XML被截断,这反过来使node-soap模块不能构build适当的客户端。 XML的确切长度在16348字节的数量上波动。 如果我移动WSDL以引用本地文件,则client.describe()
将按预期执行,并且对Web服务的调用也可用。 然而,对这种请求的更长的回应也会以类似的方式截断。 这导致我相信有一些东西在所有的数据块被接收之前closures了连接,所以我检出了请求 npm模块(也与节点打包在一起)。
为了解决这个问题,我试图只使用请求模块来检索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中设置。