正确的信封用于SOAP请求?

时间:2015-01-31 10:38:03

标签: soap wsdl envelope

我尝试与此处指定的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 Message,我输入了我的代码当前生成的内容:

<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操作/消息是什么?

1 个答案:

答案 0 :(得分:1)

有几件事:

  1. &#34;服务器地址&#34;需要指向实际服务,所以在这种情况下 https://api.okpay.com/OkPayAPI
  2. 在这种情况下,可以在WSDL中看到该操作 https://api.okpay.com/I_OkPayAPI/Get_Date_Time
  3. 查看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>