Вы можете настроить запросы, создаваемые и передаваемые клиентом, используя опции запроса. Параметры запроса управляют различными аспектами запроса включая заголовки, параметры строки запроса, настройки таймаута, тело запроса и многое другое.
Во всех следующих примерах используется следующий клиент:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Описывает поведение перенаправления запроса
[
'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, по умолчанию=5) максимальное количество разрешенных перенаправлений.
strict: (bool, default=false) Установите значение true для использования строгих перенаправлений. Строгие перенаправления в соответствии с RFC означают, что запросы POST перенаправления отправляются как POST-запросы вместо того, чтобы делать то, что делает большинство браузеров - перенаправлять POST-запросы с GET-запросами.
referer: (bool, по умолчанию=false) Установите значение true, чтобы включить добавление заголовка Referer при перенаправлении
протоколы: (массив, по умолчанию=['http', 'https']) Указывает, какие протоколы являются разрешены для запросов перенаправления.
on_redirect: (вызываемая) PHP-вызываемая функция, которая вызывается, когда происходит перенаправление встречается. Вызываемая переменная вызывается с исходным запросом и полученным ответом перенаправления. Любое возвращаемое значение из функции 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, // allow at most 10 redirects.
'strict' => true, // use "strict" RFC compliant redirects.
'referer' => true, // add a Referer header
'protocols' => ['https'], // only allow https URLs
'on_redirect' => $onRedirect,
'track_redirects' => true
]
]);
echo $res->getStatusCode();
// 200
echo $res->getHeaderLine('X-Guzzle-Redirect-History');
// http://first-redirect, http://second-redirect, etc...
echo $res->getHeaderLine('X-Guzzle-Redirect-Status-History');
// 301, 302, etc...
Предупреждение
Эта опция имеет эффект только в том случае, если ваш обработчик имеет промежуточное ПО
GuzzleHttp\Middleware::redirect
промежуточное ПО. Это промежуточное ПО добавляется
по умолчанию, когда клиент создается без обработчика, и добавляется по
по умолчанию при создании обработчика с помощью GuzzleHttp\HandlerStack::create
.
Примечание
Эта опция не имеет никакого эффекта при выполнении запросов с помощью GuzzleHttp\Client::sendRequest()
. Для того, чтобы оставаться в соответствии с PSR-18, любой ответ перенаправления возвращается как есть.
Передаем массив параметров аутентификации HTTP для использования с
запрос. Массив должен содержать имя пользователя в индексе [0], пароль в
индекс [1], и, по желанию, вы можете указать встроенный тип аутентификации в
index [2]. Передайте null
, чтобы отключить аутентификацию для запроса.
Нет
GuzzleHttp\RequestOptions::AUTH
Ниже перечислены встроенные типы аутентификации:
Authorization
(настройка по умолчанию, если не указан ни один заголовок).
указано).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Примечание
В настоящее время это поддерживается только при использовании обработчика cURL, но создание замены, которая может быть использована с любым обработчиком HTTP, планируется планируется.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Примечание
В настоящее время это поддерживается только при использовании обработчика cURL.
Опция body
используется для управления телом сущности.
охватывающего запроса (например, PUT, POST, PATCH).
fopen()
ресурсPsr\Http\Message\StreamInterface
Нет
GuzzleHttp\RequestOptions::BODY
Этот параметр может быть установлен на любой из следующих типов:
string
// Вы можете отправлять запросы, которые используют строку в качестве тела сообщения.
$client->request('PUT', '/put', ['body' => 'foo'])
ресурс, возвращенный из fopen()
// Вы можете отправлять запросы, которые используют ресурс потока в качестве тела.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource]);
Psr\Http\Message\StreamInterface
// Вы можете отправлять запросы, использующие в качестве тела объект потока Guzzle
$stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
$client->request('POST', '/post', ['body' => $stream]);
Примечание
Этот параметр нельзя использовать с form_params
, multipart
или json
.
Устанавливается в строку, чтобы указать путь к файлу, содержащему PEM в формате PEM сертификат клиентской стороны. Если требуется пароль, то задайте массив, содержащий путь к файлу PEM в первом элементе массива за которым следует пароль, требуемый для сертификата, во втором элементе массива элемент.
Нет
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Вы должны указать опцию cookies как GuzzleHttp\Cookie\CookieJarInterface
или false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Предупреждение
Эта опция имеет эффект только в том случае, если ваш обработчик имеет
GuzzleHttp\Middleware::cookies
. Это промежуточное ПО добавляется
по умолчанию, когда клиент создается без обработчика, и добавляется по
по умолчанию при создании обработчика с помощью GuzzleHttp\default_handler
.
Совет
При создании клиента вы можете установить опцию cookie по умолчанию в true
для использования общей сессии cookie, связанной с клиентом.
0
для неограниченного ожидания (поведение по умолчанию).0
GuzzleHttp\RequestOptions::CONNECT_TIMEOUT
// Timeout if the client fails to connect to the server in 3.14 seconds.
$client->request('GET', '/delay/5', ['connect_timeout' => 3.14]);
Примечание
Этот параметр должен поддерживаться HTTP-обработчиком, используемым для отправки запроса.
connect_timeout
в настоящее время поддерживается только встроенным обработчиком cURL
обработчиком.
Установлено на true
или установлено на поток PHP, возвращаемый fopen()
, чтобы
включить вывод отладки с помощью обработчика, используемого для отправки запроса. Например,
при использовании cURL для передачи запросов, вербоза cURL CURLOPT_VERBOSE
будет выдаваться. При использовании обёртки потока PHP, обёртка потока
будут выдаваться уведомления. Если установлено значение true, вывод будет записан в
STDOUT PHP. Если указан поток PHP, вывод будет записан в поток.
fopen()
ресурсНет
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
Укажите, будут ли Content-Encoding
ответы (gzip,
deflate и т.д.) автоматически декодируются.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Этот параметр можно использовать для управления тем, как будут обрабатываться тела ответов с кодировкой содержимого
обрабатываться. По умолчанию decode_content
установлен в true, что означает, что любой gzipped
или дефлированный ответ будет декодирован Guzzle.
Если установлено значение false
, тело ответа никогда не декодируется, то есть байты проходят через обработчик без изменений.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Если установлено значение строки, байты ответа декодируются, и строковое значение
предоставленное опции decode_content
, передается в качестве Accept-Encoding
заголовок запроса.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Количество миллисекунд задержки перед отправкой запроса.
null
GuzzleHttp\RequestOptions::DELAY
Управляет поведением заголовка "Expect: 100-Continue"
1048576
GuzzleHttp\RequestOptions::EXPECT
Установите значение true
, чтобы включить заголовок "Expect: 100-Continue" для всех запросов.
которые посылают тело. Установите значение false
, чтобы отключить заголовок "Expect: 100-Continue"
заголовок для всех запросов. Устанавливается в число, так что размер полезной нагрузки должен быть
быть больше этого числа, чтобы отправить заголовок Expect. Установка значения
число будет посылать заголовок 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, используемых клиентом.
GuzzleHttp\RequestOptions::FORCE_IP_RESOLVE
// Force ipv4 protocol
$client->request('GET', '/foo', ['force_ip_resolve' => 'v4']);
// Force ipv6 protocol
$client->request('GET', '/foo', ['force_ip_resolve' => 'v6']);
Примечание
Этот параметр должен поддерживаться HTTP-обработчиком, используемым для отправки запроса.
force_ip_resolve
в настоящее время поддерживается только встроенными обработчиками cURL
и обработчиками потоков.
GuzzleHttp\RequestOptions::FORM_PARAMS
Ассоциативный массив имен и значений полей формы, где каждое значение является строкой или массив строк. Устанавливает для заголовка Content-Type значение application/x-www-form-urlencoded, если заголовок Content-Type еще не указан. присутствует.
$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
.
GuzzleHttp\RequestOptions::HEADERS
// Set various headers on a request
$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']]);
// Will send a request with the X-Foo header.
$client->request('GET', '/get');
// Sets the X-Foo header to "test", which prevents the default header
// from being applied.
$client->request('GET', '/get', ['headers' => ['X-Foo' => 'test']]);
// Will disable adding in default headers.
$client->request('GET', '/get', ['headers' => null]);
// Will not overwrite the X-Foo header because it is in the message.
use GuzzleHttp\Psr7\Request;
$request = new Request('GET', 'http://foo.com', ['X-Foo' => 'test']);
$client->send($request);
// Will overwrite the X-Foo header with the request option provided in the
// send method.
use GuzzleHttp\Psr7\Request;
$request = new Request('GET', 'http://foo.com', ['X-Foo' => 'test']);
$client->send($request, ['headers' => ['X-Foo' => 'overwrite']]);
false
, чтобы отключить отбрасывание исключений при ошибках протокола HTTP.
ошибки (т.е. ответы 4xx и 5xx). По умолчанию исключения выбрасываются, когда
ошибки протокола HTTP.true
GuzzleHttp\RequestOptions::HTTP_ERRORS
$client->request('GET', '/status/500');
// Throws a GuzzleHttp\Exception\ServerException
$res = $client->request('GET', '/status/500', ['http_errors' => false]);
echo $res->getStatusCode();
// 500
Предупреждение
Эта опция имеет эффект только в том случае, если ваш обработчик имеет промежуточное ПО
GuzzleHttp\Middleware::httpErrors
промежуточное ПО. Это промежуточное ПО добавляется
по умолчанию, когда клиент создается без обработчика, и добавляется по
по умолчанию при создании обработчика с помощью GuzzleHttp\default_handler
.
Поддержка интернационализированных доменных имен (IDN) (включена по умолчанию, если
intl
расширение доступно).
true
если доступно расширение intl
(и библиотека ICU версии 4.6+ для PHP 7.2+), false
иначе
GuzzleHttp\RequestOptions::IDN_CONVERSION
$client->request('GET', 'https://яндекс.рф');
// яндекс.рф is translated to xn--d1acpjx3f.xn--p1ai before passing it to the handler
$res = $client->request('GET', 'https://яндекс.рф', ['idn_conversion' => false]);
// The domain part (яндекс.рф) stays unmodified
Включает/выключает поддержку ИДИ, также может использоваться для точного контроля путем комбинирования
Константы IDNA_* (кроме IDNA_ERROR_*), см. параметр $options
в параметре
idn_to_ascii()
документации для получения более подробной информации.
json
используется для простой загрузки данных в кодировке JSON в качестве
тело запроса. Заголовок Content-Type application/json
будет
добавлен, если в сообщении еще нет заголовка Content-Type.json_encode()
.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Вот пример использования промежуточного ПО tap
, чтобы увидеть, какой запрос отправляется по проводу.
use GuzzleHttp\Middleware;
// Create a middleware that echoes parts of the request.
$tapMiddleware = Middleware::tap(function ($request) {
echo $request->getHeaderLine('Content-Type');
// application/json
echo $request->getBody();
// {"foo":"bar"}
});
// The $handler variable is the handler passed in the
// options to the client constructor.
$response = $client->request('PUT', '/put', [
'json' => ['foo' => 'bar'],
'handler' => $tapMiddleware($handler)
]);
Примечание
Этот параметр запроса не поддерживает настройку заголовка Content-Type
или какие-либо опции из json_encode() PHP.
функции. Если вам нужно настроить эти параметры, то вы должны передать в запрос
JSON-кодированные данные в запрос самостоятельно, используя body
request
и вы должны указать правильный заголовок Content-Type, используя опцию
headers
.
Этот параметр нельзя использовать с body
, form_params
, или multipart
.
GuzzleHttp\RequestOptions::MULTIPART
Значение multipart
представляет собой массив ассоциативных массивов, каждый из которых содержит следующие пары ключ-значение:
name
: (строка, обязательно) имя поля формыcontents
: (StreamInterface/resource/string, требуется) Данные для использования в
элементе формы.headers
: (массив) Необязательный ассоциативный массив пользовательских заголовков для использования с
элементом формы.filename
: (строка) Необязательная строка для отправки в качестве имени файла в части.use GuzzleHttp\Psr7;
$client->request('POST', '/post', [
'multipart' => [
[
'name' => 'foo',
'contents' => 'data',
'headers' => ['X-Baz' => 'bar']
],
[
'name' => 'baz',
'contents' => Psr7\Utils::tryFopen('/path/to/file', 'r')
],
[
'name' => 'qux',
'contents' => Psr7\Utils::tryFopen('/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
.
Вызываемый объект, который вызывается, когда HTTP-заголовки ответа были получены, но тело еще не начало загружаться
GuzzleHttp\RequestOptions::ON_HEADERS
Вызываемый объект принимает объект Psr\Http\Message\ResponseInterface
. Если исключение
будет выброшено вызываемым объектом, то обещание, связанное с ответом, будет
будет отклонено с GuzzleHttp\Exception\RequestException
, который обертывает
исключение, которое было брошено.
Вам может понадобиться знать, какие заголовки и коды состояния были получены, прежде чем данные будут записаны на поглотитель.
// Reject responses that are greater than 1024 bytes.
$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
- это вызываемый элемент, который вызывается
когда обработчик завершает отправку запроса. Обратный вызов вызывается
с передачей статистики о запросе, полученном ответе или
возникшей ошибке. В эти данные включено общее количество времени, затраченное на отправку запроса.
для отправки запроса.
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());
// You must check if a response was received before using the
// response object.
if ($stats->hasResponse()) {
echo $stats->getResponse()->getStatusCode();
} else {
// Error data is handler specific. You will need to know what
// type of error data your handler uses before using this
// value.
var_dump($stats->getHandlerErrorData());
}
}
]);
Определяет функцию для вызова при достижении прогресса в передаче
Нет
GuzzleHttp\RequestOptions::PROGRESS
Функция принимает следующие позиционные аргументы:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Передайте строку, чтобы указать HTTP-прокси, или массив, чтобы указать разные прокси для разных протоколов.
Нет
GuzzleHttp\RequestOptions::PROXY
Передайте строку, чтобы указать прокси для всех протоколов.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Передайте ассоциативный массив для указания HTTP-прокси для определенных схем URI
(т.е. "http", "https"). Предоставьте пару no
ключ-значение для предоставления списка
имен хостов, к которым не следует применять прокси-сервер.
Примечание
Guzzle автоматически заполнит это значение переменной вашего окружения
NO_PROXY
переменной окружения. Однако при предоставлении proxy
опцию запроса, вы должны предоставить значение no
, разобранное из proxy
.
переменной окружения NO_PROXY
(например, explode(',', getenv('NO_PROXY'))
).
$client->request('GET', '/', [
'proxy' => [
'http' => 'http://localhost:8125', // Use this proxy with "http"
'https' => 'http://localhost:9124', // Use this proxy with "https",
'no' => ['.mit.edu', 'foo.com'] // Don't use a proxy with these
]
]);
Примечание
Вы можете предоставить URL-адреса прокси, содержащие схему, имя пользователя и пароль.
Например, "http://username:[email protected]:10"
.
Ассоциативный массив значений строки запроса или строка запроса для добавления к запрос.
Нет
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Строки запросов, указанные в опции query
, будут перезаписывать все значения строк запросов, указанные в URI запроса.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP iniGuzzleHttp\RequestOptions::READ_TIMEOUT
Таймаут применяется к отдельным операциям чтения потокового тела (когда включена опция stream
).
$response = $client->request('GET', '/stream', [
'stream' => true,
'read_timeout' => 10,
]);
$body = $response->getBody();
// Returns false on timeout
$data = $body->read(1024);
// Returns false on timeout
$line = fgets($body->detach());
Укажите, где будет сохранено тело ответа
fopen()
ресурсPsr\Http\Message\StreamInterface
PHP temp stream
GuzzleHttp\RequestOptions::SINK
Передайте строку для указания пути к файлу, в котором будет храниться содержимое тела ответа:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Передайте ресурс, возвращенный из fopen()
для записи ответа в поток PHP:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Передайте объект Psr\Http\Message\StreamInterface
для передачи тела ответа в открытый поток PSR-7.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Примечание
Опция запроса save_to
была устаревшей в пользу опции запроса
sink
. Предоставление опции save_to
теперь является псевдонимом
опции sink
.
Укажите путь к файлу, содержащему закрытый ключ SSL в формате PEM формате. Если требуется пароль, то задается массив, содержащий путь к SSL-ключу в первом элементе массива, за которым следует пароль, требуемый для сертификата во втором элементе.
Нет
GuzzleHttp\RequestOptions::SSL_KEY
Примечание
ssl_key
реализуется обработчиками HTTP. В настоящее время это поддерживается только
поддерживается только обработчиком cURL, но может поддерживаться и другими сторонними
обработчиками.
true
для потоковой передачи ответа вместо того, чтобы загружать его полностью
заранее.false
GuzzleHttp\RequestOptions::STREAM
$response = $client->request('GET', '/stream/20', ['stream' => true]);
// Read bytes off of the stream until the end of the stream is reached
$body = $response->getBody();
while (!$body->eof()) {
echo $body->read(1024);
}
Примечание
Поддержка потокового ответа должна быть реализована обработчиком HTTP, используемым клиентом. Эта опция может поддерживаться не всеми HTTP обработчиками, но интерфейс объекта ответа остается неизменным независимо от того, поддерживается ли он обработчиком или поддерживается ли он обработчиком или нет.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Описывает поведение проверки SSL-сертификата при запросе.
true
, чтобы включить проверку SSL-сертификата и использовать пучок ЦС по умолчанию, предоставляемый операционной системой.
CA пучок, предоставляемый операционной системой.false
, чтобы отключить проверку сертификатов (это небезопасно!).true
GuzzleHttp\RequestOptions::VERIFY
// Use the system's CA bundle (this is the default setting)
$client->request('GET', '/', ['verify' => true]);
// Use a custom SSL certificate on disk.
$client->request('GET', '/', ['verify' => '/path/to/cert.pem']);
// Disable validation entirely (don't do this!).
$client->request('GET', '/', ['verify' => false]);
Если вам не нужен конкретный пакет сертификатов, то Mozilla предоставляет часто используемый пакет CA, который можно загрузить здесь (предоставлено сопровождающим cURL). Как только у вас будет доступен пакет CA на диске, вы можете установить параметр PHP ini "openssl.cafile", указывающий на путь к файлу, что позволит вам опустить опцию запроса "verify". Более подробную информацию о SSL-сертификатах можно найти на сайте сайте cURL.
0
чтобы ждать неопределенное время (поведение по умолчанию).0
GuzzleHttp\RequestOptions::TIMEOUT
// Timeout if a server does not return a response in 3.14 seconds.
$client->request('GET', '/delay/5', ['timeout' => 3.14]);
// PHP Fatal error: Uncaught exception 'GuzzleHttp\Exception\TransferException'
1.1
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);