0

我需要实现一个 SOAP 服务器,它将响应作为 SOAP 客户端的第三方应用程序。

服务器应该是 PHP 的,所以我开始使用 nusoap 和http://www.wsdltophp.com/来生成骨架。

这是他们给我的 wsdl 文件: http ://pastebin.com/YXBbszqE 支持人员说我应该从 Ping 请求开始,因为它是最简单直接的实现。

我是新手,非常感谢一些帮助。

这是我到目前为止的服务器: http: //pastebin.com/vARst5t0

并模拟客户端:http: //pastebin.com/seG7EmM6

它给了我一个错误: http: //pastebin.com/Say6FmF6

非常感谢,伙计们。

编辑:我发现在服务器上,禁用 error_reporting 后,我没有收到以前的错误。

我忘了提到我使用加载 wsdl 文件的 nusoap 功能并且没有手动定义每个 complexType,但它仍然无法正常工作,现在我收到以下错误: Operation 'Ping' is not defined in the WSDL for this service. 我确定它就在那里。

4

2 回答 2

2

也许它来自您在生成包时选择的选项。实际上,当调用 MySoapServicePing::Ping() 方法时,参数可能未正确发送:是否包含在数组中。所以尝试修改生成行为并再次发送请求。

您还可以查看发送到 SOAP 服务器的 XML 请求,以确保它不是来自请求。要获取 XML 请求,您可以在发送请求后调用 MySoapWsdlClass::getSoapClient()->__getLastRequest() 方法或 $mySoapServicePing->getLastRequest() 方法(取决于生成器的版本)。

让我知道它是否改变了什么。

于 2013-06-11T10:30:39.360 回答
0

谢谢大家,我最终使用了 php 本机功能,并且配置起来更容易。

于 2013-06-12T14:34:43.547 回答