php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #54791 Invalid SOAPAction when connceting to .NET service
Submitted: 2011-05-17 13:58 UTC Modified: -
Votes:26
Avg. Score:4.4 ± 1.0
Reproduced:23 of 23 (100.0%)
Same Version:13 (56.5%)
Same OS:10 (43.5%)
From: juice at apelsin dot nu Assigned:
Status: Open Package: SOAP related
PHP Version: 5.3.6 OS: Ubuntu 11.04
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: juice at apelsin dot nu
New email:
PHP Version: OS:

 

 [2011-05-17 13:58 UTC] juice at apelsin dot nu
Description:
------------
When making a SOAP call in non-WSDL mode toward a .NET service, SoapClient adds 
a pound sign (#) instead of a 
slash (/) between URI and action, which makes the .NET service return: "Server 
did not recognize the value of HTTP 
Header SOAPAction: <uri>#<action>".

According to previous bug-report #30370 (which is similar), this is not a bug: 
"If you don't use WSDL then you 
should specify "soapaction" by your self". 

However, adding a soapaction definition is only possible with __call / 
__soapCall and not when calling a WSDL 
function directly. I think this is not an issue when calling a PHP SOAP server 
since it probably interprets the 
pound sign correctly. A .NET SOAP service will not, however.

To make it easier, it would be desirable to be able to define SOAPAction, or be 
able to define a .NET compability 
mode even when calling a WSDL function, since being limited to using the low-
level __soapCall requires structuring 
the call by yourself.

Test script:
---------------
$client = new SoapClient(NULL,array(
  "host"=>"http://host/action.asmx",
  "uri"=>"http://host/webservices/soaprequest"
);
$info = $client->Action($options,$ctx,$wfl);


Expected result:
----------------
Fatal error: Uncaught SoapFault exception: [soap:Client] Server did not recognize 
the value of HTTP Header SOAPAction: http://host/webservices/soaprequest#Action


Patches

Add a Patch

Pull Requests

Add a Pull Request

 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sat Apr 20 16:01:29 2024 UTC