我從wsdl文件創建了Web服務對象,並在下面調用它。我也打印結果。此代碼不起作用。 Web服務器返回錯誤。因爲請求沒有命名空間。如何在節點肥皂中添加「命名空間」以請求節點肥皂
soap.createClient(__dirname + '/wsdl/getCustomerDetails.wsdl', function(err, client) {
.
.
var params= {"custId":"123"};
client.getCustomerDetails.getCustomerDetailsPort.getCustomerDetails(params,function(err,result){
console.log("lastRequest:"+client.lastRequest);
if (err != null)
console.log("error:"+JSON.stringfy(error));
});
}
在這裏我看到了最後的請求
<soap:... xmlns:tns="http://example.com/api/getCustomerDetails/V01" >
....
<soap:Body>
<getCustomerDetailsRequest>
<custId>123</custId>
</getCustomerDetailsRequest>
</soap:Body>...
,但它必須是
<soap:... xmlns:tns="http://example.com/api/getCustomerDetails/V01" >
....
<soap:Body>
<tns:getCustomerDetailsRequest>
<tns:custId>123</tns:custId>
</tns:getCustomerDetailsRequest>
</soap:Body>...
如你所見,肥皂模塊不tns
命名空間添加到該請求。我嘗試var params= {"tns:custId":"123"};
,它將命名空間添加到參數,但它仍不會將名稱空間添加到請求getCustomerDetailsRequest
。因此,我得到Unexpected element getCustomerDetailsRequest found. Expected {http://example.com/api/getCustomerDetails/V01}getCustomerDetailsRequest
。
我該如何強制將該名稱空間添加到方法本身?
我如何使用請求庫調用通過json而不是xml? 我有xmlns的問題 –