我正在尝试使用本机php soap服务器在php中创建一个soap服务。我已经准备好了wsdl文件。 使用soap服务基本上可以调用四种方法。其中一个请求ShowRemittanceDetail的输入soap请求如下所示。
<soap-env:body>
<ns1:showremittancedetailrequest>
<username>admin</username>
<password>pass</password>
<refno>USA1956127848</refno>
</ns1:showremittancedetailrequest>
</soap-env:body>
无论如何,soap请求没有标题,我刚刚在这里显示了正文。我解析soap请求没问题。响应应该如下所示
<?xml version="1.0" encoding="ISO-8859-1"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns2:responseType xmlns:ns2="http://tempuri.org/response">
<code>00</code>
<message>Transaction does not exist or is not available</message>
<responseBody>
<responseStr>4</responseStr>
</responseBody>
</ns2:responseType>
</soapenv:Body>
</soapenv:Envelope>
这是在服务器中没有带引用号的事务时生成的特定响应。 我收到了肥皂请求并对其进行了评估。但是我对soap响应的返回类型有问题。我无法生成有效的回复。肥皂服务器应该返回什么类型的响应?
我尝试过的事情:
looks like we got no xml document
。我也尝试使用相同的结果来修复原生的php SoapVar()
。
我尝试返回soap服务器的类映射中指定的对象响应。
例如对于上面的示例,我尝试返回具有相同结果的ShowRemittanceDetailResponse
对象。 (looks like we got no xml document
)。
我尝试过返回一个DomDocument对象。在这种情况下抛出的异常是
the encoded object does not have a responseStr property
。
请帮帮我。 提前谢谢。
答案 0 :(得分:0)
我找到的解决方案是返回SoapVar
个对象。我没有soapui和我在php写的客户端是不正确的。因此,我在验证返回的xml时遇到问题,因为php soap客户端正在抛出异常。对我来说,正确的方法是返回SoapVar。