我正在做一个集成,我必须使用基于 Java 的第 3 方 Web 服务。此第 3 方 Web 服务高度区分大小写。将 Web 服务添加到 .net 项目后。我们在那里调用了方法。但是 .net 代码会创建自己的请求 XML,这与供应商所需的 XML 不同。
例如 .net 创建 XML 如下
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetAccountBalanceRequest xmlns="http://www.XXXXXXX.com/lmsglobal/ws/v1/extint/types">
<Authentication>
<Principal xmlns="http://www.XXXXXXX.com/lmsglobal/xsd/v1/types">
<PrincipalValue>9401120106480306</PrincipalValue>
<PrincipalClassifier>0001</PrincipalClassifier>
</Principal>
<Credential xmlns="http://www.XXXXXXX.com/lmsglobal/xsd/v1/types"/>
</Authentication>
<LoyaltyCurrency xsi:nil="true"/>
</GetAccountBalanceRequest>
</s:Body>
但是供应商说他们希望 XML 如下所示
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://www.XXXXXXX.com/lmsglobal/ws/v1/extint/types" xmlns:typ1="http://www.XXXXXXX.com/lmsglobal/xsd/v1/types">
<soapenv:Header/>
<soapenv:Body>
<typ:GetAccountBalanceRequest>
<typ:Authentication>
<typ1:Principal>
<typ1:PrincipalValue>9401120106480306</typ1:PrincipalValue>
<typ1:PrincipalClassifier>0001</typ1:PrincipalClassifier>
</typ1:Principal>
</typ:Authentication>
</typ:GetAccountBalanceRequest>
</soapenv:Body>
</soapenv:Envelope>
如何修改 Web 服务以便它根据供应商的需要生成请求 XML?
我还使用 Soap UI 来检查响应。如果我使用 .net 生成的 XML,那么它会失败,但我使用上面的 XML,那么它就可以工作。