使用PHP中的SOAP wsHttpBinding

时间:2011-01-10 00:54:15

标签: php soap wshttpbinding

我有一台只提供wsHttpBinding网络服务的服务器,需要在PHP中使用它。 标准的SoapClient无法使用它,给出以下错误:

  

http://www.w3.org/2005/08/addressing/faults:Sendera:ActionMismatch在消息上指定的SOAP操作''与HTTP SOAP Action“http://tempuri.org/ICategoryApi/Tree”不匹配。一个:动作

是否有一些支持wsHttpBinding的PHP SoapClient实现或设置?

2 个答案:

答案 0 :(得分:1)

wsHttpBinding使用PHP SoapClient无法处理的WS-Security和WS-Addressing功能。

根据错误,我会说问题与WS-Addressing有关(HTTP Action标头丢失,SOAP消息中缺少<a:Action>标头)。

看看这是否有帮助:WSO2-WSF PHP

答案 1 :(得分:1)

我发现服务器也有basicHttpBinding模式,但这些方法在两种绑定模式下都有相同的名称。

问题仍然存在,因为PHP默认客户端似乎不允许在它们之间进行区分,实现重载,因为它按名称调用方法并转到第一个匹配(wsHttpBinding)。

我通过使用 nusoap来解决正确的方法解决了这个问题(这项任务很好)。