Как перенаправить / переслать запрос в 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()вызовите сразу после заголовка, чтобы больше ничего не выполнять.

Другие вопросы по тегам