1

我正在做一个集成,我必须使用基于 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,那么它就可以工作。

4

0 回答 0