我很难用node-soap和chronopost(运输平台)soap api发出简单的请求。
我要做的第一件事是遵循基本的节点肥皂示例,但是它却不幸地失败了,而没有来自chronopost的任何实际的有用错误。
肥皂和java ...我讨厌。
这就是我得到的:
const soap = require('soap')
const client = await soap.createClientAsync(
'https://ws.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl'
)
client.shippingV6(...somedata, (err, result) => {
if (err) {
return handleErr(); // it always fails
}
handleResult();
})
答案 0 :(得分:0)
经过多次尝试后,chronopost api似乎使用了特殊的根属性(谁知道为什么),并且您需要在节点肥皂上实际选择适合其需求的选项(是..)
这是对我有用的
const createClientShippingServiceWS = async () => {
const wsdlOptions = {
envelopeKey: 'soapenv',
overrideRootElement: {
namespace: 'cxf',
xmlnsAttributes: [
{
name: 'xmlns:cxf',
value: 'http://cxf.shipping.soap.chronopost.fr/'
}
]
}
}
return await soap.createClientAsync(
'https://ws.chronopost.fr/shipping-cxf/ShippingServiceWS?wsdl',
wsdlOptions
)
}
如果node-soap无法确定如何做出响应,那么获取wsdl有什么意义呢?
感谢chronopost被困在2008年