Использование SOAP wsHttpBinding из PHP - PullRequest
1 голос
/ 10 января 2011

У меня есть сервер, который предлагает только веб-сервис wsHttpBinding, и мне нужно использовать его из PHP. Стандартный SoapClient не работает с ним, выдавая следующую ошибку:

http://www.w3.org/2005/08/addressing/faults:Sendera:ActionMismatch Действие SOAP, указанное в сообщении '', не соответствует действию HTTP SOAP, 'http://tempuri.org/ICategoryApi/Tree'. a: Действие

Существует ли какая-либо реализация или настройка PHP SoapClient, поддерживающая wsHttpBinding?

Ответы [ 2 ]

1 голос
/ 12 января 2011

Я обнаружил, что на сервере также есть режим basicHttpBinding, но методы имеют одинаковые имена в обоих режимах привязки.

Проблема не устранена, поскольку клиент по умолчанию PHP, по-видимому, не позволяет различать их, реализуяперегрузка, так как он вызывает метод по имени и переходит к первому соответствию (wsHttpBinding).

Я решил это с помощью nusoap для адресации правильного метода (это хорошо справляется с этой задачей).

1 голос
/ 11 января 2011

wsHttpBinding использует функции WS-Security и WS-Addressing, которые PHP SoapClient не может обработать.

Исходя из ошибки, я бы сказал, что проблема связана с WS-Addressing (отсутствует заголовок HTTP Action, отсутствует заголовок <a:Action> в сообщении SOAP).

Посмотрите, поможет ли это вместо этого: WSO2-WSF PHP .

...