Performs a SOAP request

- « SoapClient::__construct

- SoapClient::__getCookies »

- PHP Manual
- SoapClient
- Performs a SOAP request

# SoapClient::__doRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__doRequest — Performs a SOAP request

### Description

public SoapClient::__doRequest(
string `$request`,
string `$location`,
string `$action`,
int `$version`,
bool `$oneWay` = `false`
): ?string

Performs SOAP request over HTTP.

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

### 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.

### Return Values

The XML SOAP response.

### Changelog

Version | Description
--- | ---
8.0.0 | The type of `oneWay` is bool now; formerly it was int.

### Examples

Example #1 SoapClient::__doRequest() example

    <?php

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

    class LocalSoapClient extends SoapClient
    {
        private $server;

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

        public function __doRequest(
            $request,
            $location,
            $action,
            $version,
            $one_way = false,
        ): ?string {
            ob_start();
            $this->server->handle($request);
            $response = ob_get_contents();
            ob_end_clean();

            return $response;
        }
    }

    $x = new LocalSoapClient(
        null,
        [
            'location' => 'test://',
            'uri' => 'http://testuri.org',
        ]
    );

    var_dump($x->Add(3, 4));

    ?>