Alex Rivera | Logout

Inspect XML created by PHP SoapClient call before/without sending the request

Asked 2009-10-26T18:17:26.173
45

The question: Is there a way to view the XML that would be created with a PHP SoapClient function call BEFORE you actually send the request?

background:

I am new to WSDL communication, and I have a client who wants me to develop in PHP, a way to communicate with a WSDL service written in ASP.NET. I have gotten pretty far, but am running into an issue when it comes to passing a complex type. I have tried a couple of different things so far.

1) Setting up a single array such as $params->Person->name $params->Person->address

2) Setting up a single array $Person = array('name'=>"joe",'address' = "123");

then passing into the call as a param "Person" => $Person; and a few others. But every time I get the error

SoapException: Server was unable to process request ---> System.Exception: Person is Required. at service name.

In order to further the troubleshooting, I would like to see the XML document that is being sent to see if it is creating a complex type in the way I am expecting it to. I am creating the service using $client = new SoapClient('wsdldoc.asmx?WSDL'); calling it with $client->CreateUser($params); and then trying to see it using the function $client->__getLastRequest(); but it never makes it to the __getLastRequest because it hits a fatal error when calling CreateUser($params).

The question again: Is there any way to view the XML created by the CreateUser($params) call WITHOUT actually sending it and causing a fatal error

Edit
Report

1 Answer

2

I don't believe there is a way that you'll be able to see any XML that's being created... mainly because the function is failing on it's attempt to create/pass it.

Not sure if you tried already, but if you're having trouble trying to decide what exactly you need to pass into the function you could use:

$client->__getTypes();

https://www.php.net/manual/en/soapclient.gettypes.php

Hope this helps!

answered 2009-10-26T18:38:14.400

Your Answer