Как перенаправить / переслать запрос в php?
Я использую httpful, чтобы отправить запрос http и получить ответ для отображения в request.php
include('httpful.phar');
$response = \Httpful\Request::get('http://domain/response.php')->send();
echo '<textarea rows="20" cols="100">';
echo $response;
echo '</textarea>';
В response.php я использую header для перенаправления запроса на другую страницу, но не могу получить ожидаемый ответ.
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://otherdomain/other_response.php");
echo 'internal response page'
Я также пытался
header("HTTP/1.1 302 Found");
но он все еще только получает ответ "внутренняя страница ответа"
Как правильно перенаправить / переслать запрос в other_response.php?
2 ответа
Из того, что я знаю, вы можете использовать только header(); один раз. И это должно вывести прежде всего. Из кода, который вы показали, я не вижу никаких ошибок, кроме этого.
Просматривая код пакета, я нашелfollowRedirects
метод (здесь). Похоже, вам нужно вызвать этот метод и передать его.true
. В вашем случае это будет выглядеть так:
include('httpful.phar');
$response = \Httpful\Request::get('http://domain/response.php')
->followRedirects(true)
->send();
echo '<textarea rows="20" cols="100">';
echo $response;
echo '</textarea>';
The followRedirects(true)
call указывает запросу следовать перенаправлениям, указанным в вашем файле response.php. Также обратите внимание: обычно, когда вы хотите отправить заголовок перенаправления, вы помещаетеexit()
вызовите сразу после заголовка, чтобы больше ничего не выполнять.