Оглавление

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

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

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

allow_redirects

Резюме

Описывает поведение переадресации из запроса

Типы
  • bool
  • array
По умолчанию
[
    'max'             => 5,
    'strict'          => false,
    'referer'         => false,
    'protocols'       => ['http', 'https'],
    'track_redirects' => false
]
Константа

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) Функция обратного вызова, которая вызывается, когда редирект перестал работать. Эта функция вызывается с первоначального запросом и ответом перенаправления, который был получен. Любое возвращаемое значение из функции on_redirect игнорируется.
  • track_redirects: (bool) Если установлено значение true, каждый встречающийся URL перенаправления будет отслеживаться в заголовке X-Guzzle-Redirect-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,      // использовать "жесткие", RFC совместимые редиректы.
        'referer'         => true,      // добавить заголовок Referrer
        'protocols'       => ['https'], // разрешить только HTTPS URL-адреса
        'on_redirect'     => $onRedirect,
        'track_redirects' => true
    ]
]);

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

echo $res->getHeaderLine('X-Guzzle-Redirect-History');
// http://first-redirect, http://second-redirect, etc...

Этот параметр имеет эффект только, если ваш обработчик - GuzzleHttp\Middleware::redirect промежуточного программного обеспечения. Это ПО промежуточного слоя добавляется по умолчанию, когда клиент создаются без обработчика, и добавляется по умолчанию при создании обработчика с GuzzleHttp\default_handler.

auth

Резюме

Передает массив параметров аутентификации HTTP для использования с запросом. Массив должен содержать имя пользователя с индексом [0], пароль с индексом [1], и вы можете по желанию предоставить встроенный тип аутентификации в индексе [2]. Передать null чтобы отключить проверку подлинности для запроса.

Типы
  • array
  • string
  • null
По умолчанию

нет

Константа

GuzzleHttp\RequestOptions::AUTH

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

basic
Использование базовой аутентификации HTTP в Authorization заголовке (настройка по умолчанию используется, если она не указана).
$client->request('GET', '/get',[
		'auth' => ['username', 'password']
		]);
digest
Использование дайджест-проверки подлинности (должен поддерживаться обработчиком HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Это в настоящее время поддерживается только при использовании обработчика  cURL,  но планируется создать эмулятор, который может быть использован с любым обработчиком HTTP.

body

Резюме

Параметр body используется, чтобы управлять телом запроса с объектами включения (например,., PUT, POST, PATCH).

Типы
  • string
  • fopen() resource
  • Psr\Http\Message\StreamInterface
По умолчанию

нет

Константа

GuzzleHttp\RequestOptions::BODY

Этот параметр может быть установлен любым из следующих способов:

  • string

    // Вы можете посылать запросы, которые 
    // используют строку в теле сообщения.
    $client->request('PUT', '/put', ['body' => 'foo']);

     

  • Ресурс возвращаемыйfopen()
    // Вы можете посылать запросы, которые используют 
    // поток ресурсов как body.
    $resource = fopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • Psr\Http\Message\StreamInterface
    // Вы можете посылать запросы, которые используют объект
    // потока Guzzle как body
    $stream = GuzzleHttp\Psr7\stream_for('contents...');
    $client->request('POST', '/post', ['body' => $stream]);

     

Этот параметр не может быть использован с form_params, multipart или json

cert

Резюме

Установливает строку, с путем к файлу, содержащему PEM отформатированный сертификат на стороне клиента. Если требуется пароль, то устанавливается массив, содержащий путь к файлу PEM в первом элементе массива, и пароль, требуемый для сертификата во втором элементе массива.

Типы
  • string
  • array
По умолчанию

Нет

Константа

GuzzleHttp\RequestOptions::CERT

$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);

cookies

Резюме
Определяет, будет ли или нет используются куки в запросе или какие куки использовать или какие куки для отправки.
Типы
GuzzleHttp\Cookie\CookieJarInterface
По умолчанию
Нет
Константа
GuzzleHttp\RequestOptions::COOKIES

Вы должны указать парамтр куков в виде GuzzleHttp\Cookie\CookieJarInterface или false.

$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);

Этот параметр имеет эффект только, если ваш обработчик имеет в  GuzzleHttp\Middleware::cookies промежуточное программное обеспечение. Это ПО промежуточного слоя добавляется по умолчанию, когда клиент создаются без обработчика, и добавляется по умолчанию при создании обработчика с GuzzleHttp\default_handler.

При создании клиента, вы можете установить опцию куки по умолчанию в true , чтобы использовать общий  сеанс куков, связанный с клиентом.

connect_timeout

Резюме
Float описывающее количество секунд ожидания при попытке подключения к серверу. Используйте  0, чтобы ждать до бесконечности (поведение по умолчанию).
Типы
float
По умолчанию
0
Константа
GuzzleHttp\RequestOptions::CONNECT_TIMEOUT
// Тайм-аут, если клиент не может подключиться к серверу 
// в 3,14 секунды.
$client->request('GET', '/delay/5', ['connect_timeout' => 3.14]);

Этот параметр должен быть поддержан обработчиком HTTP, используемый для отправки запроса.  connect_timeoutв настоящее время поддерживается только с помощью встроенного в cURL обработчика.

debug

Резюме

 Установить  trueили установить PHP поток возвращамый fopen() , чтобы включить отладочный вывод с помощью обработчика, используемого для отправки запроса. Например, при использовании cURL  для передачи запросов, многословным cURL из  CURLOPT_VERBOSE будет выброшено уведомление. При использовании PHP оболочки потока, будет выброшеноуведомлений оболочки потока. Если установлено значение  true, то вывод записывается на STDOUT PHP.   Если указан PHP поток, вывод записывается в поток.

Типы
  • bool
  • fopen() resource
По умолчанию

Нет

Константа

GuzzleHttp\RequestOptions::DEBUG

$client->request('GET', '/get', ['debug' => true]);

Запуск приведенного выше примера будет выводить что-то вроде следующего:

* About to connect() to httpbin.org port 80 (#0)
*   Trying 107.21.213.98... * Connected to httpbin.org (107.21.213.98) port 80 (#0)
> GET /get HTTP/1.1
Host: httpbin.org
User-Agent: Guzzle/4.0 curl/7.21.4 PHP/5.5.7

< HTTP/1.1 200 OK
< Access-Control-Allow-Origin: *
< Content-Type: application/json
< Date: Sun, 16 Feb 2014 06:50:09 GMT
< Server: gunicorn/0.17.4
< Content-Length: 335
< Connection: keep-alive
<
* Connection #0 to host httpbin.org left intact

decode_content

Резюме

Укажите, следует ли или нет Content-Encoding ответы (gzip, deflate, etc.) автоматически декодировать.

Типы
  • string
  • bool
По умолчанию

true

Константа

GuzzleHttp\RequestOptions::DECODE_CONTENT

Эта опция может быть использована для управления обработкой декодирования тела ответа. По умолчанию , decode_content установлено значение  true, то есть любое gzipped или deflated состояние ответа будет декодированно Guzzle.

Если установлено значение  false,тело ответа никогда не декодируется, а это означает байты проходят через обработчик без изменений.

// Запрошены gzip ованные данные, но не расшифровывать их его во время загрузки
$client->request('GET', '/foo.js', [
    'headers'        => ['Accept-Encoding' => 'gzip'],
    'decode_content' => false
]);

При установке строки, байты ответа декодируются а значение строки предоставляет параметры  decode_content , они передается в параметре Accept-Encoding запроса.

// Передать "gzip" в качестве Accept-Encoding заголовка.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);

delay

Резюме

 Число миллисекунд задержки перед отправкой запроса.

Типы
  • integer
  • float
По умолчанию

null

Константа

GuzzleHttp\RequestOptions::DELAY

expect

Резюме

Управляет поведением заголовка "Expect: 100-Continue" .

Типы
  • bool
  • integer
По умолчанию

1048576

Константа

GuzzleHttp\RequestOptions::EXPECT

Установить  true, чтобы заголовок "Expect: 100-Continue"ставился во всех запросах, которые запрашивается тело.. Установить значение  false чтобы отключить "Expect: 100-Continue" заголовок для всех запросов.  При указании  числа,  заголовок Expect  посылается, при превышении телом этого значенияr. При установки числа, заголовок  Expect посылается всегда, когда размер полезной нагрузки не может быть определен, или тело не перематываемое.

По умолчанию, Guzzle добавит заголовок "Expect: 100-Continue" ,когда размер тела запроса больше 1 МБ и запрос с использованием HTTP / 1.1.

Эта опция действует только при использовании HTTP / 1.1. HTTP / 1.0 и HTTP / 2.0 протоколы не поддерживают заголовок "Expect: 100-Continue". Поддержка обработки "Expect: 100-Continue" должен быть реализован HTTP обработчиком  Guzzle,   используемых клиентом..

form_params

Резюме
Используется для отправки application/x-www-form-urlencoded POST запроса.
Типы
array
Константа
GuzzleHttp\RequestOptions::FORM_PARAMS

Ассоциативный массив имен полей формы и значений, где каждое значение является строкой или массивом строк. Устанавливает заголовок  Content-Type для application/x-www-form-urlencoded когда еше нет установлен заголовок Content-Type header.

$client->request('POST', '/post', [
    'form_params' => [
        'foo' => 'bar',
        'baz' => ['hi', 'there!']
    ]
]);

form_paramsне может быть использован с параметром multipart. Вам нужно будет использовать один или другой. Используйте form_params для application/x-www-form-urlencoded запросов, и multipart для multipart/form-data запросов.

Этот параметр не может быть использован с body, multipart, или json

headers

Резюме
Ассоциативный массив заголовков, чтобы добавить к запросу. Каждый ключ является именем заголовка, а каждое значение представляет собой строку или массив строк, представляющих значения полей заголовка.
Типы
array
Значения по умолчанию
Нет
Константа
GuzzleHttp\RequestOptions::HEADERS
// Установить различные заголовки к запросу
$client->request('GET', '/get', [
    'headers' => [
        'User-Agent' => 'testing/1.0',
        'Accept'     => 'application/json',
        'X-Foo'      => ['Bar', 'Baz']
    ]
]);

Заголовки могут быть добавлены в качестве опции по умолчанию при создании клиента. Когда заголовки используются в качестве опций по умолчанию, они применяются только в случае, если запрос создается ещё не содержит конкретный заголовок. Они включают в себя оба запроса передаются клиенту в методах send() и sendAsync() и запросах , созданных клиентом (например, request() и requestAsync()).

$client = new GuzzleHttp\Client(['headers' => ['X-Foo' => 'Bar']]);

// Будет отправлять запрос с заголовком X-Foo.
$client->request('GET', '/get');

// Устанавливает заголовок X-Foo в "test",  который заменяет заголовок по умолчанию
// отменяя его.
$client->request('GET', '/get', ['headers' => ['X-Foo' => 'test']);

// Будет отключать добавление заголовков по умолчанию.
$client->request('GET', '/get', ['headers' => null]);

// Не будет перезаписывать заголовок X-Foo, потому что это в сообщении.
use GuzzleHttp\Psr7\Request;
$request = new Request('GET', 'http://foo.com', ['X-Foo' => 'test']);
$client->send($request);

// Будет перезаписывать заголовок X-Foo с параметром запроса, предоставленной в
// методе send.
use GuzzleHttp\Psr7\Request;
$request = new Request('GET', 'http://foo.com', ['X-Foo' => 'test']);
$client->send($request, ['headers' => ['X-Foo' => 'overwrite']]);

http_errors

Резюме
Установить в false, чтобы отключить выбрасывание исключений на ошибки протокола HTTP  (т.е. 4xx и 5xx ответов). Исключения выбрасываются по умолчанию, когда встречаются ошибки протокола HTTP.
Типы
bool
По умолчанию
true
Константа
GuzzleHttp\RequestOptions::HTTP_ERRORS
$client->request('GET', '/status/500');
// Бросает GuzzleHttp\Exception\ServerException

$res = $client->request('GET', '/status/500', ['http_errors' => false]);
echo $res->getStatusCode();
// 500

Этот параметр имеет эффект только, если ваш обработчик имеет в GuzzleHttp\Middleware::httpErrors  промежуточное программное обеспечение. Это ПО промежуточного слоя добавляется по умолчанию, когда клиент создаются без обработчика, и добавляется по умолчанию при создании обработчика с GuzzleHttp\default_handler.

json

Summary
Опция  json используется  для легкой загрузки данных в формате JSON кодирования тела запроса. В заголовок  Content-Type ставится  application/json , если нет заголовка Content-Type в сообщении.
Типы
Любой тип PHP, который может работать на функцией РНР json_encode() .
По умолчанию
Нет
Константа
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Вот пример использования tap промежуточного программного обеспечения, чтобы увидеть, что запрос передается по проводам.

use GuzzleHttp\Middleware;

// Захватить экземпляр обработчика клиента.
$clientHandler = $client->getConfig('handler');
// Создание промежуточного программного обеспечения, который выводит части запроса
$tapMiddleware = Middleware::tap(function ($request) {
    echo $request->getHeader('Content-Type');
    // application/json
    echo $request->getBody();
    // {"foo":"bar"}
});

$response = $client->request('PUT', '/put', [
    'json'    => ['foo' => 'bar'],
    'handler' => $tapMiddleware($clientHandler)
]);

Этот параметр запроса не поддерживает настройки Content-Typeзаголовка или любой из вариантов PHP функции json_encode() . Если вам необходимо настроить эти параметры, то вы должны передать JSON закодированные данные в запрос самостоятельно, используя параметр запроса body   и вы должны указать правильный заголовок Content-Type используя  параметр запроса headers .

Этот параметр не может быть использован с body, form_params, или multipart

multipart

Резюме
Приводит тело запроса к multipart/form-data форме.
Типы
array
Константа
GuzzleHttp\RequestOptions::MULTIPART

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

  • name:  (string, обязательно) имя поля формы
  • contents: (StreamInterface/resource/string, обязательно) Данные, предназначенные для использования в элементе формы.
  • headers: (array) Необязательный ассоциативный массив пользовательских заголовков используемых с элементом формы.
  • filename: (string) Необязательная строка для отправки в качестве имени файла в части.
$client->request('POST', '/post', [
    'multipart' => [
        [
            'name'     => 'foo',
            'contents' => 'data',
            'headers'  => ['X-Baz' => 'bar']
        ],
        [
            'name'     => 'baz',
            'contents' => fopen('/path/to/file', 'r')
        ],
        [
            'name'     => 'qux',
            'contents' => fopen('/path/to/file', 'r'),
            'filename' => 'custom_filename.txt'
        ],
    ]
]);

multipart не может быть использована с параметром form_params . Вам нужно будет использовать один или другой. Используйте  form_params с application/x-www-form-urlencoded запросами, и multipart для multipart/form-data запросов.

Этот параметр не может быть использован с body, form_params, или json

on_headers

Резюме

Функция обратного вызова, которая вызывается, когда  HTTP-заголовки ответа были получены, но тело еще не начало скачиваться.

Типы
  • callable
Константа

GuzzleHttp\RequestOptions::ON_HEADERS

Функция обратного вызова принимает Psr\Http\ResponseInterface объект. Если функцией выбрасывается исключение, то обещание, связанное с ответом будет отклонено с GuzzleHttp\Exception\RequestException что обрабатывает исключение, которое было брошено.

Вы, возможно, должны знать, какие заголовки и коды статусов были получены, прежде чем данные могут быть записаны в приемник.

// Отклонить ответы, которые больше, чем 1024 байт.
$client->request('GET', 'http://httpbin.org/stream/1024', [
    'on_headers' => function (ResponseInterface $response) {
        if ($response->getHeaderLine('Content-Length') > 1024) {
            throw new \Exception('The file is too big!');
        }
    }
]);

При записи обработчиков HTTP функция  on_headers  должна быть вызвана перед записью данных в тело ответа.

on_stats

Резюме

on_stats позволяет получить доступ к передаче статистики запроса и получить доступ к более низким деталям передачи уровня обработчика, связанным с вашим клиентом.. on_stats является функцией обратного вызова, которая вызывается, когда обработчик завершил отправку запроса. Обратный вызов происходит со статистикой передачи  запроса, полученым ответом, или обнаруженной ошибкой. В данных есть общее количество времени, на отправку запроса.

Типы
  • callable
Константа

GuzzleHttp\RequestOptions::ON_STATS

Функция обратного вызова принимает объект GuzzleHttp\TransferStats.

use GuzzleHttp\TransferStats;

$client = new GuzzleHttp\Client();

$client->request('GET', 'http://httpbin.org/stream/1024', [
    'on_stats' => function (TransferStats $stats) {
        echo $stats->getEffectiveUri() . "\n";
        echo $stats->getTransferTime() . "\n";
        var_dump($stats->getHandlerStats());

        // Вы должны проверить, если ответ был получен перед использованием
        // объекта Ответа.
        if ($stats->hasResponse()) {
            echo $stats->getResponse()->getStatusCode();
        } else {
            // Данные обработчика Ошибок специфичны. Вы должны будете знать, что
            // тип данных об ошибках обработчика использует перед использованием этого
            // значения.
            var_dump($stats->getHandlerErrorData());
        }
    }
]);

proxy

Резюме

 Передаёт строку, чтобы указать HTTP прокси-сервер или массив, чтобы задавать различные прокси-серверы для различных протоколов.

Типы
  • string
  • array
По умолчанию

Нет

Константа

GuzzleHttp\RequestOptions::PROXY

Передаёт строку, чтобы указать прокси-сервер для всех протоколов.

$client->request('GET', '/', ['proxy' => 'tcp://localhost:8125']);

Передаёт ассоциативный массив, чтобы указать HTTP прокси для конкретных схем URI (т.е., "HTTP", "HTTPS"). Передает no парам ключ => значение, чтобы предоставить список имен хостов, которые не должны быть переданы серверу.

Guzzle автоматически заполнит это значение с NO_PROXY переменной окружения вашей среды. Тем не менее, при предоставлении параметра запроса proxy, у вас ест возможность добвасить no значения прочитав из NO_PROXY переменных окружения (например., explode(',', getenv('NO_PROXY'))).

$client->request('GET', '/', [
    'proxy' => [
        'http'  => 'tcp://localhost:8125', // Использовать этот прокси-сервер с "HTTP"
        'https' => 'tcp://localhost:9124', // Использовать этот прокси-сервер с "https",
        'no' => ['.mit.edu', 'foo.com']    // Не использовать прокси-сервер с этими
    ]
]);

Вы можете предоставить прокси URL-адреса, которые содержат схемы, имя пользователя и пароль. Например, "http://username:password@192.168.16.1:10".

query

Резюме

Ассоциативный массив значений строки запроса или строки запроса, чтобы добавить к запросу.

Типы
  • array
  • string
По умолчанию

Нет

Константа

GuzzleHttp\RequestOptions::QUERY

// Отправить запрос GET к /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);

Строки запроса, указанные в параметре запроса query перепишет значения строки запроса, поставляемые в URI запроса.

// Отправить запрос GET к /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);

sink

Резюме

Указывает, где будет сохранено тело ответа.

Типы
  • string путь к файлу на диске)
  • fopen() resource
  • Psr\Http\Message\StreamInterface
По умолчанию

Поток временного файла PHP

Константа

GuzzleHttp\RequestOptions::SINK

Передаёт строку, чтобы указать путь к файлу, который будет хранить содержимое тела ответа:

$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);

Передаёт ресурс возвращенный из fopen() для записи ответа в PHP поток:

$resource = fopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);

Передаёт   объект Psr\Http\Message\StreamInterface для потоковой передачи тела ответа в открытый PSR-7 поток

$resource = fopen('/path/to/file', 'w');
$stream = GuzzleHttp\Psr7\stream_for($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);

 


Вариант запроса save_to является устаревшим в пользу варианта запроса sink. Для совместимости, параметр  save_to теперь псевдоним sink.

ssl_key

Резюме

Указывает путь к файлу, содержащему частный ключ SSL в формате PEM.Если требуется пароль,то задается массив, содержащий путь к ключу SSL в первом элементе массива, за которым следует пароль, требуемые для сертификата во втором элементе.

Типы
  • string
  • array
По умолчанию

Нет

Константа

GuzzleHttp\RequestOptions::SSL_KEY

ssl_key осуществляется обработчиком HTTP. Это в настоящее время поддерживается только обработчиком cURL но может быть поддержан другими обработчиками третьей части.

stream

Резюме
Установить true для потокового ответа, а не загружать все зараннее.
Типы
bool
По умолчанию
false
Константа
GuzzleHttp\RequestOptions::STREAM
$response = $client->request('GET', '/stream/20', ['stream' => true]);
// Прочитайте байты потока, пока конец потока не будет достигнут
$body = $response->getBody();
while (!$body->eof()) {
    echo $body->read(1024);
}

Поддержка ответа потоковаой передачи должна быть реализована обработчиком HTTP, используемым клиентом. Эта опция не могла бы поддерживаться каждым обработчиком HTTP, но интерфейс объекта ответа остается тем же независимо от того, поддерживается ли это обработчиком.

synchronous

Резюме
Установить значение True, чтобы сообщить http-обработчикам, что вы намерены ждать ответа. Это может быть полезно для оптимизации.
Типы
bool
По умолчанию
Нет
Константа
GuzzleHttp\RequestOptions::SYNCHRONOUS

verify

Резюме

Описывает поведение проверки сертификата SSL из запроса.

  • Установить  true включить проверку сертификата SSL и использовать CA по умолчанию пакет предоставленный операционной системой.
  • Установитьfalse чтобы отключить проверку сертификата (это небезопасно!).
  • Установить  строку, чтобы указать путь к CA связи для того, чтобы выполнить проверку с помощью пользовательского сертификата.
Типы
  • bool
  • string
По умолчанию

true

Константа

GuzzleHttp\RequestOptions::VERIFY

// Использовать пакет CA системы (это - настройка по умолчанию),
$client->request('GET', '/', ['verify' => true]);

// Использовать сертификат пользовательского SSL на диске.
$client->request('GET', '/', ['verify' => '/path/to/cert.pem']);

// Отключить проверку полностью (не делайте этого!).
$client->request('GET', '/', ['verify' => false]);

Не все системы имеют известный CA пакет на диске.  Например, Windows и OS X не имеют одно общее место для CA пакетов. При установке "verify" в true, Guzzle будет делать все возможное, чтобы найти наиболее подходящий  CA пакет в вашей системе. При использовании cURL или потоковой обертки PHP на версиях PHP> = 5.6, это происходит по умолчанию. При использовании потоковой обертки PHP на версиях <5.6, Guzzle пытается найти Ваш пакет CA в следующем порядке:

  1. Проверит, установлен ли openssl.cafile   в файле php.ini.
  2. Проверит, установлен ли curl.cainfo  в вашем файле php.ini.
  3. Проверит, существует ли /etc/pki/tls/certs/ca-bundle.crt (Redhat, CentOS, Fedora, предоставленной, с помощью пакета CA-сертификатов)
  4. Проверит, существует ли /etc/ssl/certs/ca-certificates.crt exists (Ubuntu, Debian;Fedora, предоставленной, с помощью пакета CA-сертификатов)
  5. Проверит, существует ли /usr/local/share/certs/ca-root-nss.crt exists (FreeBSD; Fedora, предоставленной, с помощью пакета CA-сертификатов)
  6. Проверит, существует ли /usr/local/etc/openssl/cert.pem (OS X;  обеспечивается домашней папкой)
  7. Проверит, существует ли C:\windows\system32\curl-ca-bundle.crt  (Windows)
  8. Проверит, существует ли C:\windows\curl-ca-bundle.crt  (Windows)

Результаты этого поиска кэшируется в памяти, так что последующие вызовы в том же самом процессе вернутся очень быстро Тем не менее, при отправке только одного запроса на процесс в чем-то вроде Apache, вы должны рассмотреть вопрос о создании переменной среды openssl.cafile на путь на диске к файлу, так что весь этот процесс будет пропущен.

Если вам не нужен конкретный пакет сертификатов, то Mozilla предоставляет обычно используемый  CA пакет, который можно скачать здесь (предоставленный сопровождающим cURL).  После того, как у вас есть CA сертификат на диске, вы можете установить  "openssl.cafile" PHP INI настройки, чтобы указать на путь к файлу, что позволяет опустить "verify" вариант запроса. Намного более подробную информацию о SSL-сертификатов можно найти на веб-сайте cURL website.

timeout

Резюме
Float описывающее тайм-аут запроса в секундах. Используйте  0ждать до бесконечности (поведение по умолчанию).
Типы
float
По умолчанию
0
Константа
GuzzleHttp\RequestOptions::TIMEOUT
// Тайм-аут, если сервер не возвращает ответ в 3,14 секунды.
$client->request('GET', '/delay/5', ['timeout' => 3.14]);
// PHP Fatal error:  Uncaught exception 'GuzzleHttp\Exception\RequestException'

version

Резюме
Версия протокола для использования с запросом.
Типы
string, float
По умолчанию
1.1
Константа
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);

Использование

Оглавление