Опции за заявка

Можете да персонализирате заявките, създадени и прехвърлени от клиент, като използвате опции за заявки. Опциите на заявката управляват различни аспекти на заявката включително заглавия, параметри на низ от заявки, настройки за времетраене, тялото на заявката. заявката и много други.

Всички следващи примери използват следния клиент:

$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, по подразбиране=5) максимален брой разрешени пренасочвания.

  • стриктно: (bool, default=false) Задайте стойност true, за да използвате стриктни пренасочвания. Стриктните пренасочвания в съответствие с RFC означават, че заявките за POST пренасочване се изпращат като POST заявки срещу това, което правят повечето браузъри, а именно пренасочване на POST заявки с GET заявки.

  • referer: (bool, default=false) Задайте стойност true, за да разрешите добавянето на референта при пренасочване.

  • протоколи: (масив, по подразбиране=['http', 'https']) Посочва се кои протоколи са разрешени за заявки за пренасочване.

  • on_redirect: (callable) PHP callable, който се извиква при пренасочване е срещнато пренасочване. Извикването се извършва с първоначалната заявка и получения отговор за пренасочване. Всяка върната стойност от 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, всеки отговор за пренасочване се връща такъв, какъвто е.

auth

Резюме

Предаване на масив от параметри за HTTP удостоверяване, които да се използват с заявката. Масивът трябва да съдържа потребителското име в индекс [0], паролата в индекс [1], а по желание можете да предоставите вграден тип удостоверяване в index [2]. Предайте null, за да деактивирате удостоверяването за дадена заявка.

Видове
  • масив
  • низ
  • null
По подразбиране

Няма

Постоянно

GuzzleHttp\RequestOptions::AUTH

Вградените типове удостоверяване са следните:

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

Забележка

Понастоящем това се поддържа само при използване на обработчика cURL, но създаването на заместител, който може да се използва с всеки HTTP манипулатор, е планира.

ntlm
Използвайте Microsoft NTLM удостоверяване (трябва да се поддържа от HTTP обработчика).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Забележка

Понастоящем това се поддържа само при използване на обслужващия модул cURL.

body

Резюме

Опцията body се използва за управление на тялото на дадено образувание. (напр. PUT, POST, PATCH).

Видове
  • низ
  • fopen() ресурс
  • Psr\Http\Message\StreamInterface
По подразбиране

Няма

Постоянно

GuzzleHttp\RequestOptions::BODY

Тази настройка може да бъде зададена за някой от следните типове:

  • низ

    // Можете да изпращате заявки, които използват низ като тяло на съобщението.
    $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 като тяло
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream]);
    

Забележка

Тази опция не може да се използва с form_params, multipart или json

cert

Резюме

Задайте като низ, за да посочите пътя до файл, съдържащ PEM форматиран сертификат от страна на клиента. Ако се изисква парола, тогава задайте стойност масив, съдържащ пътя до PEM файла в първия елемент на масива последвано от паролата, изисквана за сертификата, във втория елемент на масива

Видове
  • низ
  • масив
По подразбиране

Няма

Постоянно

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

Резюме
Плаващ параметър, описващ броя на секундите за изчакване при опит за свързване към даден сървър. Използвайте 0, за да чакате неопределено време (поведение по подразбиране).
Видове
float
По подразбиране
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 обработчик.

debug

Резюме

Задайте на true или задайте на PHP поток, върнат от fopen(), за да да се активира извеждането на информация за дебъгване с манипулатора, използван за изпращане на заявка. Например, когато използвате cURL за прехвърляне на заявки, вербозата на cURL от CURLOPT_VERBOSE ще бъде излъчен. Когато използвате обвивката за потоци на PHP, обвивката за потоци ще бъдат излъчени известия. Ако е зададена стойност true, изходът се записва в STDOUT на PHP. Ако е предоставен PHP поток, изходът се записва в него.

Видове
  • bool
  • 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

decode_content

Резюме

Посочете дали да се използва Content-Encoding отговорите (gzip, deflate и т.н.) се декодират автоматично.

Видове
  • низ
  • bool
По подразбиране

true

Постоянно

GuzzleHttp\RequestOptions::DECODE_CONTENT

Тази опция може да се използва за управление на начина, по който се кодират телата на отговорите със съдържание. обработват. По подразбиране decode_content е зададена на true, което означава, че всеки gzipped или deflated отговор ще бъде декодиран от 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']);

delay

Резюме

Броят милисекунди за забавяне преди изпращане на заявката.

Видове
  • цяло число
  • float
По подразбиране

null

Постоянно

GuzzleHttp\RequestOptions::DELAY

Очаквайте

Резюме

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

Видове
  • bool
  • integer
По подразбиране

1048576

Постоянно

GuzzleHttp\RequestOptions::EXPECT

Задайте true, за да активирате заглавието "Expect: 100-Continue" за всички заявки. които изпращат тяло. Задайте false, за да забраните "Expect: 100-Continue" за всички заявки. Задайте на число, така че размерът на полезния товар да бъде да бъде по-голям от това число, за да се изпрати заглавието Expect. Задаване на стойност ще изпрати заглавието "Очаквай" за всички заявки, при които размерът на не може да се определи или когато тялото не може да се превърта.

По подразбиране Guzzle добавя заглавието "Expect: 100-Continue", когато размерът на тялото на заявката е по-голям от 1 MB и заявката използва HTTP/1.1.

Забележка

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

force_ip_resolve

Резюме
Задайте "v4", ако искате HTTP обработчиците да използват само протокол ipv4, или "v6" за протокол ipv6.
Видове
низ
По подразбиране
null
Постоянно
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 и обработчиците на потоци.

form_params

Резюме
Използва се за изпращане на application/x-www-form-urlencoded POST заявка.
Видове
масив
Постоянно
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

headers

Резюме
Асоциативен масив от заглавия, които да се добавят към заявката. Всеки ключ е и всяка стойност е низ или масив от низове представляващи стойностите на полетата на заглавието.
Видове
масив
По подразбиране
Няма
Постоянно
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']]);

http_errors

Резюме
Задайте на false, за да забраните хвърлянето на изключения при HTTP протокол. (т.е. отговори 4xx и 5xx). Изключенията се хвърлят по подразбиране, когато се срещат грешки на HTTP протокола.
Видове
bool
По подразбиране
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_conversion

Резюме

Поддръжка на интернационализирани имена на домейни (IDN) (активирано по подразбиране, ако intl разширението е налично).

Видове
  • bool
  • int
По подразбиране

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

Активира/деактивира поддръжката на IDN, може да се използва и за прецизен контрол чрез комбиниране на IDNA_* константи (с изключение на IDNA_ERROR_*), вижте $options параметър в idn_to_ascii() за повече подробности.

json

Резюме
Опцията json се използва за лесно качване на данни, кодирани в JSON, като в тялото на заявката. Заглавието Content-Type (Тип на съдържанието) на application/json ще бъде ако в съобщението вече няма заглавие Content-Type.
Видове
Всеки тип PHP, който може да се управлява от функцията json_encode() на PHP.
По подразбиране
Няма
Постоянно
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 заявката и трябва да посочите правилния заглавен ред Content-Type, като използвате headers опцията за заявка.

Тази опция не може да се използва с body, form_params или multipart

multipart

Резюме
Задава тялото на заявката като форма multipart/form-data.
Видове
масив
Постоянно
GuzzleHttp\RequestOptions::MULTIPART

Стойността на multipart е масив от асоциативни масиви, всеки от които съдържа следните двойки ключ-стойност:

  • име: (низ, задължителен) името на полето на формуляра
  • съдържание: (StreamInterface/resource/string, задължително) Данните, които се използват в елемента на формата.
  • headers: (масив) Незадължителен асоциативен масив от потребителски заглавия, които да се използват с елемента на формата.
  • име на файла: (низ) Незадължителен низ, който да се изпрати като име на файла в частта.
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

on_headers

Резюме

Извикване, което се задейства, когато HTTP заглавията на отговора имат е получен, но тялото все още не е започнало да се изтегля.

Видове
  • callable
Постоянно

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 ви позволява да получите достъп до статистиката за трансфера на и достъп до по-ниско ниво на детайли за трансфера на обработващия свързани с вашия клиент. 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());

        // 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());
        }
    }
]);

прогрес

Резюме

Дефинира функция, която да се извиква при напредък в трансфера.

Видове
  • callable
По подразбиране

Няма

Постоянно

GuzzleHttp\RequestOptions::PROGRESS

Функцията приема следните позиционни аргументи:

  • общият брой байтове, които се очаква да бъдат изтеглени, нула, ако са неизвестни
  • броят на изтеглените до момента байтове
  • общия брой байтове, които се очаква да бъдат качени
  • броят на байтовете, качени до момента
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Резюме

Предайте низ, за да зададете HTTP прокси, или масив, за да зададете различни проксита за различни протоколи.

Видове
  • низ
  • масив
По подразбиране

Няма

Постоянно

GuzzleHttp\RequestOptions::PROXY

Подайте низ, за да зададете прокси за всички протоколи.

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

Предаване на асоциативен масив за задаване на HTTP проксита за конкретни URI схеми (напр. "http", "https"). Предоставете no двойка ключ-стойност, за да предоставите списък на имена на хостове, които не трябва да се проксират.

Забележка

Guzzle автоматично ще попълни тази стойност със стойността на вашата среда NO_PROXY променливата на средата. Въпреки това, когато предоставяте прокси опцията за заявка, вие трябва да предоставите стойността no, анализирана от променливата на средата 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".

query

Резюме

Асоциативен масив от стойности на низ от заявки или низ от заявки, към който да се добави заявката.

Видове
  • масив
  • низ
По подразбиране

Няма

Постоянно

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']]);

read_timeout

Резюме
Float, описващ времетраенето, което да се използва при четене на поточно тяло
Видове
float
По подразбиране
По подразбиране е стойността на default_socket_timeout PHP ini настройка
Постоянно
GuzzleHttp\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());

sink

Резюме

Посочете къде ще бъде записано тялото на отговора.

Видове
  • низ (път до файл на диска)
  • 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_key

Резюме

Посочете пътя до файл, съдържащ частен SSL ключ в PEM формат. Ако се изисква парола, тогава задайте масив, съдържащ пътя до SSL ключа в първия елемент на масива, последван от изискваната парола за сертификата във втория елемент.

Видове
  • низ
  • масив
По подразбиране

Няма

Постоянно

GuzzleHttp\RequestOptions::SSL_KEY

Забележка

ssl_key се реализира от HTTP манипулаторите. Понастоящем това е само но може да се поддържа и от други трети страни. трети страни.

stream

Резюме
Задайте на true, за да предавате отговора поточно, а не да го изтегляте целия. предварително.
Видове
bool
По подразбиране
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 манипулатор, но интерфейсът на обекта за отговор остава същият, независимо дали не се поддържа от обработчика.

synchronous

Резюме
Задайте стойност true, за да информирате HTTP обработчиците, че възнамерявате да изчакате отговор. Това може да е полезно за оптимизации.
Видове
bool
По подразбиране
няма
Постоянно
GuzzleHttp\RequestOptions::SYNCHRONOUS

проверка

Резюме

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

  • Задайте на true, за да разрешите проверката на SSL сертификата и да използвате сертификата по подразбиране CA пакет, предоставен от операционната система.
  • Задайте false, за да изключите проверката на сертификатите (това е несигурно!)
  • Задайте на низ, за да предоставите пътя до пакета на CA, за да активирате проверката използване на потребителски сертификат.
Видове
  • bool
  • string
По подразбиране

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 предоставя често използвания пакет от удостоверяващи органи, който може да бъде изтеглен тук (предоставен от поддържащия cURL). След като разполагате с пакет от CA на можете да зададете настройката на PHP ini "openssl.cafile", за да посочи пътя до файла, което ви позволява да пропуснете опцията за заявка "verify". Много повече подробности за SSL сертификатите можете да намерите в уебсайта cURL.

timeout

Резюме
Плаващ параметър, описващ общото времетраене на заявката в секунди. Използвайте 0 за да чакате неопределено време (поведение по подразбиране).
Видове
float
По подразбиране
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'

версия

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