Sheensay → Guzzle → Опции запросов Guzzle

Опции запросов Guzzle

Вы можете настроить запросы, созданные и переданные клиентом, используя опции запроса. Они управляют различными аспектами запроса, включая заголовки, параметры строки запроса, параметры тайм-аута, тело запроса и многое другое.

Все следующие примеры используют следующий клиент:

$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);

allow_redirects

Summary
Описывает поведение перенаправления запроса
Types
  • bool
  • array
Default
[
    'max'             => 5,
    'strict'          => false,
    'referer'         => false,
    'protocols'       => ['http', 'https'],
    'track_redirects' => false
]
Constant
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Установите false, чтобы отключить перенаправления:

$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302

Установите значение true (значение по умолчанию), чтобы включить нормальные перенаправления с максимальным количеством 5 перенаправлений:

$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200

Вы также можете передать ассоциативный массив, содержащий следующие пары ключ-значение:

  • max: (int, default = 5) максимальное количество разрешенных перенаправлений.
  • strict: (bool, default = false) установите значение true, чтобы использовать строгие перенаправления. Строгое RFC-совместимые перенаправления означают, что запросы перенаправления POST отправляются как POST-запросы, а не так, как это делает большинство браузеров — перенаправление запросов POST с GET-запросами.
  • referer: (bool, default = false). Установите значение true, чтобы разрешить добавление заголовка Referer при перенаправлении.
  • protocols: (array, default = ['http', 'https']). Укажите, какие протоколы разрешены для запросов на перенаправление.
  • on_redirect: (callable). обработчик PHP (callback), который вызывается при обнаружении перенаправления. Вызываемый объект вызывается с исходным запросом и полученным ответом о перенаправлении. Любое возвращаемое значение из функции on_redirect игнорируется.
  • track_redirects: (bool). При значении true каждый обнаруженный перенаправленный URI и код состояния будут отслеживаться в заголовках X-Guzzle-Redirect-History и X-Guzzle-Redirect-Status-History соответственно. Все URI и коды состояния будут храниться в том порядке, в котором были обнаружены перенаправления.

    При отслеживании перенаправлений заголовок X-Guzzle-Redirect-History будет исключать URI исходного запроса, а заголовок X-Guzzle-Redirect-Status-History исключает окончательный код состояния.

Пример:

use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\UriInterface;

$onRedirect = function(
    RequestInterface $request,
    ResponseInterface $response,
    UriInterface $uri
) {
    echo 'Redirecting! ' . $request->getUri() . ' to ' . $uri . "\n";
};

$res = $client->request('GET', '/redirect/3', [
    'allow_redirects' => [
        'max'             => 10,        // Позволяем максимум 10 редиректов
        'strict'          => true,      // Используем "strict" RFC совместимые перенаправления
        'referer'         => true,      // Добавляем заголовок Referer
        'protocols'       => ['https'], // Разрешаются только https URLs
        'on_redirect'     => $onRedirect,
        'track_redirects' => true,
    ]
]);

echo $res->getStatusCode();
// 200

echo $res->getHeaderLine('X-Guzzle-Redirect-History');
// http://первыйредирект.рф, http://второйредирект.рф, т.д...

echo $res->getHeaderLine('X-Guzzle-Redirect-Status-History');
// 301, 302, т.д...

Свежие записи

  • Squid — свой собственный HTTP Proxy сервер
  • Как исправить ошибку «Обновить WordPress — В настоящий момент выполняется другое обновление»
  • Query Monitor
  • LEMP
  • Telegram

Свежие записи

  • Squid — свой собственный HTTP Proxy сервер
  • Как исправить ошибку «Обновить WordPress — В настоящий момент выполняется другое обновление»
  • Query Monitor
  • LEMP
  • Telegram

Свежие комментарии

  • Sheens к записи Что такое SSL и TLS, как установить и настроить
  • Геомант к записи Что такое SSL и TLS, как установить и настроить
  • Sheens к записи Last-Modified в WordPress
  • Артур к записи Last-Modified в WordPress
  • Sheens к записи EWWW Image Optimizer — плагин для сжатия png, jpeg, gif анимации без потери качества
  • Telegram
  • Вконтакте
  • Facebook
  • Twitter
  • Google+
  • Одноклассники
  • Мой Мир Mail.ru
  • RSS

Copyright © 2025 · Sheensay on Genesis Framework · WordPress · Log in