正确的信封用于 SOAP 请求?

Correct envelope to use for a SOAP request?

我正在尝试与此处指定的 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 操作/消息是什么?

几件事:

  1. "Server Address"需要指向实际的服务,所以在这种情况下 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>