How do I see the actual XML generated by PHP SOAP Client Class? How do I see the actual XML generated by PHP SOAP Client Class? xml xml

How do I see the actual XML generated by PHP SOAP Client Class?


Use getLastRequest. It returns the XML sent in the last SOAP request.

echo "REQUEST:\n" . $SOAP->__getLastRequest() . "\n";

And remember, this method works only if the SoapClient object was created with the trace option set to TRUE. Therefore, when creating the object, use this code:

$SOAP = new SoapClient($WDSL, array('trace' => 1));


$SOAP = new SoapClient($WSDL, array('trace' => true));$Response = $SOAP->DoRemoteFunction($Data);echo "REQUEST:\n" . htmlentities($SOAP->__getLastRequest()) . "\n";

This will not only print the last request but also make the XML tags visible in the browser.


If you'd like to view the request without actually making a connection, you can override SoapClient's __doRequest method to return the XML:

class DummySoapClient extends SoapClient {    function __construct($wsdl, $options) {        parent::__construct($wsdl, $options);    }    function __doRequest($request, $location, $action, $version, $one_way = 0) {        return $request;    }}$SOAP = new DummySoapClient('http://example.com/?wsdl', array('trace' => true));echo $SOAP->GetRequestDetail($params);