Bug #64704 [Opn]: Problem with ASP.NET Soap Servers

From: Date: Wed, 24 Apr 2013 17:13:49 +0000
Subject: Bug #64704 [Opn]: Problem with ASP.NET Soap Servers
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-178610@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=64704&edit=1

 ID:                 64704
 User updated by:    welfordmartin at gmail dot com
 Reported by:        welfordmartin at gmail dot com
 Summary:            Problem with ASP.NET Soap Servers
 Status:             Open
 Type:               Bug
 Package:            SOAP related
 Operating System:   All
 PHP Version:        5.3.24
 Block user comment: N
 Private report:     N

 New Comment:

Work Around for time being.

class NewSoapClient extends SoapClient{

	public function __doRequest($request, $location, $action, $version, 
$one_way = 0) {
        preg_match_all("/xmlns:ns([0-9*])=\"(.[^\\\"]*)\\\"/", $request,
$env);
		
		foreach($env[0] as $key => $val){
			$request = str_replace($val, "", $request);
			preg_match_all("/<ns".$env[1][$key].":([A-Za-z][A-Za-z0-
9]*)/", $request, $test);
			foreach($test[0] as $k => $v){
				$request = str_replace($v, "<".$test[1][$k]." 
xmlns=\"".$env[2][$k]."\"", $request);
				$request = str_replace(str_replace("<", "</", 
$test[0][$k]), "</".$test[1][$k], $request);
			}
		}
		die(print_r(array($request, $test), true));
		
        // parent call
        return parent::__doRequest($request, $location, $action, $version);
    }
}


Previous Comments:
------------------------------------------------------------------------
[2013-04-24 16:09:25] welfordmartin at gmail dot com

Recommended Fix:

It would be nice if there was an option in setting up the SoapClient that tells it 
to use inline xmlns instead of in Envelope namespacing

------------------------------------------------------------------------
[2013-04-24 16:07:57] welfordmartin at gmail dot com

Description:
------------
This might want changing to a Feature Request instead of bug but I'm not sure.

There is a problem in ASP.NET SOAP Server that for some reason does not support 
using the Envelope xmlns:ns stuff inside the soap:header this is how php 
SoapClient works <soap:Envelope ... xmlns:ns1="" xmlns:ns2="">

ASP.NET uses
<soap:header>
<Method xmlns="">
</Method>
</soap:header>

Please look at "The Test Scripts" for the problem that occures these are not the 
php code but the payload generated by SoapClient and the manual modifications i 
had to to to get the code to work on my REST Testing client.

Test script:
---------------
Working:
http://pb.mgawow.co.uk/yvxCQe2S

Not Working PHP SoapClient Generated:
http://pb.mgawow.co.uk/r9xjaEW4

Expected result:
----------------
Working API Call

Actual result:
--------------
Fails causes a 500 error on remote server called


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=64704&edit=1


Thread (4 messages)

« previous php.bugs (#178610) next »