SoapClient::__doRequest

Performs a SOAP request

&reftitle.description; public ``string``null```SoapClient::__doRequest` `string` `request` `string` `location` `string` `action` `int` `version` `bool` `oneWay`&false;

Performs SOAP request over HTTP.

This method can be overridden in subclasses to implement different transport layers, perform additional XML processing or other purpose.

&reftitle.parameters;

`request`

- The XML SOAP request.

`location`

- The URL to request.

`action`

- The SOAP action.

`version`

- The SOAP version.

`oneWay`

- If `oneWay` is set to &true;, this method returns nothing. Use this where a response is not expected.

&reftitle.returnvalues;

The XML SOAP response.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | The type of `oneWay` is &boolean; now; formerly it was &integer;.

&reftitle.examples;

### `SoapClient::__doRequest` example

    <?php
    function Add($x,$y) {
      return $x+$y;
    }

    class LocalSoapClient extends SoapClient {

      function __construct($wsdl, $options) {
        parent::__construct($wsdl, $options);
        $this->server = new SoapServer($wsdl, $options);
        $this->server->addFunction('Add');
      }

      function __doRequest($request, $location, $action, $version, $one_way = 0) {
        ob_start();
        $this->server->handle($request);
        $response = ob_get_contents();
        ob_end_clean();
        return $response;
      }

    }

    $x = new LocalSoapClient(NULL,array('location'=>'test://',
                                       'uri'=>'http://testuri.org'));
    var_dump($x->Add(3,4));
    ?>