【问题标题】:Correct envelope to use for a SOAP request?用于 SOAP 请求的正确信封?
【发布时间】:2015-01-31 10:38:03
【问题描述】:

我正在尝试与此处指定的 SOAP API 集成:

https://api.okpay.com/OkPayAPI?singleWsdl

https://api.okpay.com/OkPayAPI?wsdl

目前,从 wsdl 文件自动生成的代码似乎正在运行,所以我想知道要发送的正确信封应该是什么,我应该将它发送到哪里?

我使用此服务进行测试:http://www.soapclient.com/soapmsg.html。我输入的服务器地址:

https://api.okpay.com/

对于 SOAP 消息,我输入了我的代码当前生成的内容:

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Body xmlns="http://schemas.xmlsoap.org/soap/envelope/"><Get_Date_Time xmlns="https://api.okpay.com"></Get_Date_Time></Body></Envelope>

响应似乎是页面的 HTML 代码,而不是信封响应。

为了调用 WSDL 中指定的 Get_Date_Time 方法,向哪个服务器地址发送正确的 SOAP 操作/消息是什么?

【问题讨论】:

    标签: soap wsdl envelope


    【解决方案1】:

    有几点:

    1. “服务器地址”需要指向实际的服务,所以在这种情况下 https://api.okpay.com/OkPayAPI
    2. 可以在 WSDL 中看到该操作,在这种情况下 https://api.okpay.com/I_OkPayAPI/Get_Date_Time

    查看 WSDL 并搜索我在上面给出的操作,这应该会让您了解如何为其他操作找到它。

    通过这两个更新,您应该会得到您期望的响应:

    <?xml version="1.0"?>
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
      <s:Body>
        <Get_Date_TimeResponse xmlns="https://api.okpay.com">
          <Get_Date_TimeResult>2015-01-31 17:52:37</Get_Date_TimeResult>
        </Get_Date_TimeResponse>
      </s:Body>
    </s:Envelope>
    

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 2015-01-28
      • 2021-05-28
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      相关资源
      最近更新 更多