当通过另一个工具访问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
答案 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客户端。