我需要实现一个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
。
而且我确定它就在那里。
答案 0 :(得分:2)
也许它来自您在生成包时选择的选项。实际上,在调用MySoapServicePing :: Ping()方法时,参数可能无法正确发送:数组是否包含。因此,请尝试修改生成行为并再次发送请求。
您还可以查看发送到SOAP服务器的XML请求,以确保它不是来自请求。要获取XML请求,您可以在发送请求后调用MySoapWsdlClass :: getSoapClient() - > __ getLastRequest()方法或$ mySoapServicePing-> getLastRequest()方法(取决于生成器的版本)。
如果它发生了变化,请告诉我。
答案 1 :(得分:0)
谢谢大家,我最终使用了php本机函数,配置起来要容易得多。