1

我有一个只提供wsHttpBindingWeb 服务的服务器,需要从 PHP 中使用它。标准的 SoapClient 不适用于它,并给出以下错误:

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

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

4

2 回答 2

1

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

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

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

于 2011-01-11T20:38:39.037 回答
1

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

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

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

于 2011-01-12T09:55:35.353 回答