我必须发送 SOAP 请求并且我正在使用强肥皂库。我是 SOAP 新手,但如果我理解正确,命名空间应该不会有任何区别,只是我的请求以 :ent 为前缀通过(我已经使用 SOAP UI 对其进行了测试),但是使用以 ns1 为前缀的强肥皂库生成的请求:返回“服务不可用”这是 client.lastRequest 的结果
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<ns1:OrdersRequest xmlns:ns1="http://www.lttd.com/entities/entity">
<ns1:PropertyName1>000000</ns1:PropertyName1>
<ns1:PropertyName2>111111</ns1:PropertyName2>
</ns1:OrdersRequest>
</soap:Body>
</soap:Envelope>
但是在正文中具有 :ent 签名的请求在 SOAP UI 内部传递
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ent="http://www.lttd.com/entities/entity">
<soapenv:Header/>
<soapenv:Body>
<ent:OrdersRequest>
<ent:PropertyName1>000000</ent:PropertyName1>
<ent:PropertyName2>111111</ent:PropertyName2>
</ent:OrdersRequest>
</soapenv:Body>
</soapenv:Envelope>
我已尝试按文档添加
const wsdlOptions = {
"overrideRootElement": {
"namespace": "myns",
"xmlnsAttributes": [{
"name": "xmlns:myns",
}]
}
}
这根本不影响我的要求。我还查看了有关堆栈溢出的以下问题(以及其他类似问题),但它们对我不起作用。 如何在节点肥皂中添加“命名空间”来请求
这是我的 service.ts
soap.createClient(this.URL, options, (err, client) => {
if(err){
console.log(err)
return reject(err);
} else {
let metod = client.myMethodName
const query= {query : query }
metod(query, (err, result, envelope, soapHeader)=> {
resolve(result)
});
console.log(client.describe())
console.log(client.lastRequest);
}
});
所以我的问题是我可以以及如何更改我的 SOAP 正文的前缀
<ns1:PropertyName1>000000</ns1:PropertyName1>
至
<ent:PropertyName1>000000</ent:PropertyName1>