Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 节点SOAP WSDL请求未完成(仅部分区块)_Xml_Node.js_Web Services_Soap_Request - Fatal编程技术网

Xml 节点SOAP WSDL请求未完成(仅部分区块)

Xml 节点SOAP WSDL请求未完成(仅部分区块),xml,node.js,web-services,soap,request,Xml,Node.js,Web Services,Soap,Request,使用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()); } 这不

使用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被截断,这反过来会阻止节点soap模块构建正确的客户端。XML的确切长度在16348字节的数量上下波动。如果我移动WSDL使其引用本地文件,则
client.descripe()
将按预期执行,并且对web服务的调用也可用。然而,对此类请求的较长响应也以类似方式截断。这让我相信,在接收到所有数据块之前,有什么东西正在关闭连接,所以我检查了npm模块(也打包了node)

为了解决这一问题,我尝试:

返回截断的XML正文

我以前也用过这些库,只是为了确保我用一系列旧版本的依赖库运行过相同的程序


我对这个东西还是很陌生的,所以任何帮助/指点都将不胜感激

结果表明,我需要在请求头中添加连接:“保持活动”。在节点soap库中,这可以直接在lib/http.js:46中设置。

,因为当您使用节点版本0.10.41时,这个问题不会出现。
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);  
    })