SoapClient::__doRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__doRequestFührt eine SOAP-Anfrage aus

Beschreibung

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

Führt eine SOAP-Anfrage über HTTP aus.

Diese Methode kann in einer vererbten Klasse überschrieben werden, um weitere Transportlayer, die Ausführung zusätzlichen XML-Processings oder andere Verwendungszwecke zu implementieren.

Parameter-Liste

request

Die XML-SOAP-Anfrage.

location

Die anzufragende URL.

action

Die SOAP-Aktion.

version

Die SOAP-Version.

oneWay

Wenn oneWay auf true gesetzt ist, gibt diese Methode nichts zurück. Verwenden Sie diesen Parameter, wenn Sie keine Antwort erwarten.

uriParserClass
Der Klassenname, der zum Parsen der Umleitungs-URI verwendet werden soll, wenn ein "Location"-Header in der Antwort empfangen wird, oder null, um das Standardverhalten basierend auf parse_url() zu verwenden.

Rückgabewerte

Die XML-SOAP-Antwort.

Changelog

Version Beschreibung
8.5.0 Der optionale Parameter uriParserClass wurde hinzugefügt.
8.0.0 oneWay ist nun vom Typ Boolean; vorher war er vom Typ Integer.

Beispiele

Beispiel #1 SoapClient::__doRequest()-Beispiel

<?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));

?>