Я использую стандартный класс SoapClient для отправки запросов на платежный сервер.
$context = stream_context_create([
'http' => [
'follow_location' => 0,
],
]);
$options = [
'uri' => 'urn:PaymentServer',
'location' => 'http://localhost:8001/index.php',
'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
'trace' => true,
'soap_version' => SOAP_1_1,
'stream_context' => $context,
'connection_timeout' => 50,
];
$soapClient = new SoapClient(null, $options);
try {
var_export($soapClient->GetPayment([]));
} catch (Throwable $e) {
echo $e->getMessage();
var_export($soapClient->__getLastResponse());
}
Сценарий http://localhost:8001/index.php содержит следующий код
header('Location: http://example.com', true, 302);
exit;
Я ожидаю пустой результат, но фактический вывод содержит HTML с example.com
Я пробовал get_file_contents
функцию с тем же контекстом потока:
var_export(file_get_contents('http://localhost:8001/index.php', false, $context));
И у меня есть пустая строка.
Какой параметр SoapClient или контекст потока должен быть установлен для предотвращения перенаправлений?