SoapClient::__doRequest

SOAP リクエストを実行する

説明

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

HTTP 上で SOAP リクエストを実行します。

異なるトランスポート層や追加の XML を処理する、もしくは他の目的のために サブクラスでこのメソッドをオーバーライドする事ができます。

パラメータ

request

XML SOAP リクエスト

location

リクエスト先の URL

action

SOAP アクション

version

SOAP バージョン

oneWay

oneWaytrue を設定すると、このメソッドは何も返しません。 レスポンスが不要なときにこれを使用します。

戻り値

XML SOAP レスポンス

変更履歴

バージョン 説明
8.0.0 oneWay の型は bool になりました。 これより前のバージョンでは、int でした。

例1 SoapClient::__doRequest の例

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

class LocalSoapClient extends SoapClient {
  private $server;

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