Question

I have a server that only offers a wsHttpBinding web service and need to use it from PHP. The standard SoapClient doesn't work with it, giving the following error:

http://www.w3.org/2005/08/addressing/faults:Sendera:ActionMismatch The SOAP action specified on the message, '', does not match the HTTP SOAP Action, 'http://tempuri.org/ICategoryApi/Tree'. a:Action

Is there some PHP SoapClient implementation or setting that supports wsHttpBinding?

Was it helpful?

Solution 2

I discovered that the server has the basicHttpBinding mode too, but the methods have same names in both the binding modes.

The problem persisted because the PHP default client seems to not allow to differencing between them, implementing overloading, since it calls the method by name and goes to the first matching (the wsHttpBinding one).

I solved this by using nusoap for addressing the right method (it does this task good).

OTHER TIPS

wsHttpBinding makes use of WS-Security and WS-Addressing features that PHP SoapClient can't handle.

Based on the error, I would say the problem is related with WS-Addressing (HTTP Action header missing, <a:Action> header missing in SOAP message).

See if this helps instead: WSO2-WSF PHP.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top