SoapClient not sending proper SOAP requests -- how do I correct this?

SoapClient not sending proper SOAP requests -- how do I correct this?

am 31.08.2007 15:54:13 von joshbeall

Hi All,

I've got the following PHP code:

$service = new SoapClient("http://www.webservicex.net/length.asmx?
wsdl");
$result = $service->ChangeLengthUnit(10,"Inches","Centimeters");
var_dump($result);


It returns:

object(stdClass)#2 (1) {
["ChangeLengthUnitResult"]=>
float(0)
}

If you manually go to http://www.webservicex.net/length.asmx?op=ChangeLengthUnit
and try the operation yourself, you'll see that it returns 2.54.

I used Wireshark to see what SOAP request was actually being sent, and
here's what I found:





Inches
Centimeters



This isn't right! Here's what the request *should* look like. The XML
namespaces are different, but that's ok; the problem is the content of
the Body element.


xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://
schemas.xmlsoap.org/soap/envelope/">


1
Inches
Centimeters/ChangeLengthUnit>





Windows XP Pro, IIS 5.1, and PHP 5.2.1 -- is there a bug that was
resolved in later versions of PHP? Or am I missing something?

-Josh