无法在节点上创建soap客户端

时间:2018-01-10 08:04:32

标签: node.js api soap wsdl

当通过另一个工具访问WSDL api时,它正在工作,但当我尝试通过节点创建客户端时,它会出现此错误。

  

{[错误:解析错误] bytesParsed:161,代码:   'HPE_INVALID_HEADER_TOKEN'}

我正在使用的代码

var url = 'https://payments.jazzcash.com.pk/PayAxisExternalStatusService/StatusService_v11.svc?wsdl';

        soap.createClient(url, function(err, client) {
          console.log(err);
          console.log(client); })

使用节点模块 soap

2 个答案:

答案 0 :(得分:0)

您可能需要使用https://www.npmjs.com/package/http-parser-js

1 npm安装http-parser-js

2在require(' soap')

之前插入此代码
process.binding('http_parser').HTTPParser = require('http-parser-js').HTTPParser;

以上步骤将解决您的问题

答案 1 :(得分:0)

Node.js对服务器的响应格式非常严格。 我试过const net = require('net'); const socketConnection = net.createConnection('80', 'google.com'); socketConnection.on('data', (data) => { console.log('SOCKET RESPONSE', data.toString()); }).on('connect', () => { const request = "GET / HTTP/1.1\r\n" + "Accept: */*\r\n\r\n"; socketConnection.write(request); console.log('request sent'); }).on('end', () => { console.log('the end'); }).on('error', (error) => { console.log('connection error:', error); }); ,但它对你使用的Node.js版本非常敏感。

如果您需要与发送格式错误的响应的服务器通信,我看到的唯一方法是使用套接字:

{{1}}

在SOAP客户端的上下文中,您可以自己获取WSDL并将其存储在本地,然后创建SOAP客户端。

相关问题