PHP Script to Display SOAP Requests and Responses

Programming,Web Services,Web Stuff — Jeff Eske on March 5, 2013 at 10:15 am

Some time back, while working out web services on another project, I put together a janky little snippet of PHP code that’s actually pretty handy when dealing with SOAP-based web services.  For me, the hardest part of working with web services is trying to figure out exactly what the request needs to look like to work correctly.  The other thing is figuring out exactly what I got back!  This little snippet actually shows you what the xml-formatted SOAP request and SOAP response each look like.  The REALLY nice thing is that it only takes 4 lines of code.

Here’s what it looks like:

[code]
print "<pre>\n";
print "Request :\n".htmlspecialchars($client->__getLastRequest()) ."\n";
print "Response:\n".htmlspecialchars($client->__getLastResponse())."\n";
print "</pre>";
[/code]

Basically, all you do is plug this in after you’ve created your new SoapClient() object and performed the soapCall().  A basic example would look like the code below.  Please note, this isn’t a working piece of code, just an illustration of how it would look.

[code]
$client = new SoapClient(
 some client specifics here
);
$SomeSoap = $client->__soapCall(
  do some SOAP function
);
print "<pre>\n";
print "Request :\n".htmlspecialchars($client->__getLastRequest()) ."\n";
print "Response:\n".htmlspecialchars($client->__getLastResponse())."\n";
print "</pre>";

[code]

What this should get you, when you run the script, is two separate, preformatted lines of text.  The first line will be the XML-formatted request that PHP sent to the web service.  The second line should be the XML-formatted response returned.  Granted, this doesn’t necessarily give you the final format that you need, but it will get you names of all of the XML variables that have been returned.  With that information, you can proceed to find a way to extract the information that you need.

Stay tuned for more on this subject.

Jeff Eske

1 Comment

  1. […] the TicketSearch() function, but I haven’t posted anything about that yet.  I’ve also posted a code snippet that actually helped me considerably when I was troubleshooting exactly what was going […]

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. | Jeff's Blog