PHP Conference Nagoya 2025

SoapClient::__getLastResponseHeaders

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastResponseHeaders直近の SOAP レスポンスヘッダを返す

説明

public SoapClient::__getLastResponseHeaders(): ?string

直近の SOAP レスポンスヘッダを返します。

注意:

このメソッドは、オプション trace を指定して SoapClient が作成されている場合のみ使用可能です。

パラメータ

この関数にはパラメータはありません。

戻り値

直近の SOAP レスポンスヘッダ

例1 SoapClient::__getLastResponse() の例

<?php
$client
= SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo
"RESPONSE HEADERS:\n" . $client->__getLastResponseHeaders() . "\n";
?>

参考

add a note

User Contributed Notes 2 notes

up
2
jeroen{at}asystance{dot}nl
15 years ago
Note SoapClient does not wait for a response for one-way operations (i.e. <wsdl:operation>s that do not have a <wsdl:response>)! To see if a request failed, use
$sc = new SoapClient( 'some.wsdl', array('features'=>SOAP_WAIT_ONE_WAY_CALLS));

See http://bugs.php.net/bug.php?id=36083 and http://bugs.php.net/bug.php?id=49278
up
1
noncey
9 years ago
For long running scripts which may be set to a longer timeout in the PHP script, be aware that the IIS connection timeout settings do not restart when you initiate a SOAP call even though you are using a new web address than your current running script.

Because of this, we noted a SOAP call that seemed to not return headers from a Web Service. It was found to be related to IIS timing out. This was in IIS 7.5. The resolution was to increase the connection timeout for IIS at the website/domain level.

There were no faults or exceptions captured when this occurred so your only indicator is that you have no header information.
To Top