我正在尝试使用Node来访问SOAP API。
使用SoapUI,我可以毫无问题地到达它,这是请求:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:axis="http://ws.apache.org/axis2">
<soap:Header/>
<soap:Body>
<axis:getKey>
<!--Optional:-->
<axis:user>email@email.com</axis:user>
<!--Optional:-->
<axis:password>password</axis:password>
</axis:getKey>
</soap:Body>
</soap:Envelope>
但是,使用soap
包,每次都会引发错误:无法解析响应。
但是,请求的XML几乎相同:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://ws.apache.org/axis2" xmlns:ax21="http://rpc.xml.coldfusion/xsd" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:ax22="http://rpc.xml.coldfusion/xsd">
<soap:Body>
<ns:getKey xmlns="http://ws.apache.org/axis2">
<ns:user>email@email.com</ns:user>
<ns:password>password</ns:password>
</ns:getKey>
</soap:Body>
</soap:Envelope>
我在SoapUI中尝试过,并且运行良好!我不明白为什么会收到错误消息!
这是我的代码:
async method(userData) {
const wsdl = 'http://www.maxbounty.com/api.cfc?wsdl';
const client = await soap.createClientAsync(wsdl);
const test = await client.getKeyAsync({ user: userData.username, password: userData.password });
}
有什么主意吗?
答案 0 :(得分:1)
我意识到 SoapUI 以不同的方式格式化主体。我复制粘贴了它在我的代码中使用的主体,它的作用就像一个魅力。