Možnosti požadavku

Požadavky vytvořené a přenesené klientem můžete přizpůsobit pomocí. možností požadavků. Možnosti požadavku řídí různé aspekty požadavku včetně záhlaví, parametrů řetězce dotazu, nastavení časového limitu, těla požadavku požadavku a mnoho dalšího.

Všechny následující příklady používají následujícího klienta:

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

allow_redirects

Souhrn

Popisuje chování přesměrování požadavku

Typy
  • bool
  • array
Výchozí
[
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    'track_redirects' => false
]
Konstantní

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Nastavte na false pro vypnutí přesměrování.

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

Nastavením na true (výchozí nastavení) povolíte normální přesměrování s maximálním počtem 5 přesměrování.

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

Můžete také předat asociativní pole obsahující následující dvojice klíč-hodnota:

  • max: (int, výchozí=5) maximální počet povolených přesměrování.

  • strict: (bool, výchozí=false) Nastavte na true pro použití striktního přesměrování. Striktní přesměrování v souladu s RFC znamená, že požadavky na přesměrování POST jsou odesílány jako POST oproti tomu, co dělá většina prohlížečů, tedy přesměrování požadavků POST s požadavky GET.

  • referer: (bool, výchozí=false) Nastavte na true, chcete-li povolit přidání refereru hlavičku při přesměrování.

  • protokoly: (pole, výchozí=['http', 'https']) Určeno, které protokoly jsou povoleny pro požadavky na přesměrování.

  • on_redirect: (callable) PHP callable, který je vyvolán při přesměrování se vyskytne přesměrování. Callable je vyvolán s původním požadavkem a s parametrem obdrženou odpovědí na přesměrování. Jakákoli návratová hodnota z on_redirect je ignorována.

  • track_redirects: (bool) Pokud je nastaveno na true, každý přesměrovaný URI a status kód bude sledován v X-Guzzle-Redirect-History a X-Guzzle-Redirect-Status-History hlavičky. Všechny URI a budou uloženy v pořadí, v jakém došlo k přesměrování.

    Poznámka: Při sledování přesměrování bude X-Guzzle-Redirect-History hlavička vyloučí URI původního požadavku a X-Guzzle-Redirect-Status-History. hlavička vyloučí konečný stavový kód.

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...

Varování

Tato možnost má vliv pouze v případě, že vaše obslužná rutina má příznak GuzzleHttp\Middleware::redirect middleware. Tento middleware se přidává ve výchozím nastavení, když je klient vytvořen bez handleru, a je přidán pomocí GuzzleHttp\HandlerStack::create.

Poznámka

Tato volba nemá žádný vliv při zadávání požadavků pomocí GuzzleHttp\Client::sendRequest(). Aby byla zachována shoda s PSR-18, je jakákoli odpověď na přesměrování vrácena tak, jak je.

auth

Souhrn

Předejte pole parametrů ověřování HTTP, které se použijí s příkazem požadavku. Toto pole musí obsahovat uživatelské jméno v indexu [0], heslo v indexu indexu [1] a volitelně můžete zadat vestavěný typ ověřování v položce index [2]. Předejte null pro vypnutí ověřování pro požadavek

Typy
  • pole
  • string
  • null
Výchozí

Žádné

Konstantní

GuzzleHttp\RequestOptions::AUTH

Vestavěné typy ověřování jsou následující:

základní
Použijte základní ověření HTTP v hlavičce Autorizace (výchozí nastavení se použije, pokud není zadána žádná zadáno).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digest
Použijte digest autentizace (musí být podporováno zpracovatelem HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Poznámka

To je v současné době podporováno pouze při použití obslužného programu cURL, ale vytvoření náhrady, kterou lze použít s jakoukoli obslužnou rutinou HTTP, je plánuje.

ntlm
Použijte Ověřování Microsoft NTLM (musí být podporováno zpracovatelem HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Poznámka

To je v současné době podporováno pouze při použití obslužné rutiny cURL.

body

Souhrn

Volba body slouží k ovládání těla entity. (např. PUT, POST, PATCH)

Typy
  • string
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Výchozí

Žádné

Konstantní

GuzzleHttp\RequestOptions::BODY

Toto nastavení lze nastavit na některý z následujících typů:

  • řetězec

    // Můžete odesílat požadavky, které jako tělo zprávy používají řetězec.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • zdroj vrácený z fopen()

    // Můžete odesílat požadavky, které jako tělo používají proudový zdroj.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • Psr\Http\Message\StreamInterface

    // Můžete odesílat požadavky, které používají objekt Guzzle stream jako tělo.
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream]);
    

Poznámka

Tuto možnost nelze použít s form_params, multipart nebo json.

cert

Souhrn

Nastavte na řetězec pro zadání cesty k souboru obsahujícímu PEM. ve formátu PEM na straně klienta. Pokud je vyžadováno heslo, pak nastavte na pole obsahující cestu k souboru PEM v prvním prvku pole. následované heslem požadovaným pro certifikát v druhém poli

Typy
  • string
  • pole
Výchozí

Žádné

Konstantní

GuzzleHttp\RequestOptions::CERT

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

cookies

Souhrn
Určuje, zda se v požadavku používají soubory cookie nebo jaké soubory cookie se mají používat. nádobu použít nebo jaké soubory cookie odeslat.
Typy
GuzzleHttp\Cookie\CookieJarInterface
Výchozí
Žádné
Konstantní
GuzzleHttp\RequestOptions::COOKIES

Volbu cookies musíte zadat jako GuzzleHttp\Cookie\CookieJarInterface nebo false.

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

Varování

Tato možnost má vliv pouze v případě, že vaše obslužná rutina má příznak GuzzleHttp\Middleware::cookies middleware. Tento middleware je přidán ve výchozím nastavení, když je klient vytvořen bez obslužného programu, a je přidán pomocí GuzzleHttp\default_handler.

Tip

Při vytváření klienta můžete nastavit výchozí možnost cookie na true abyste použili sdílenou relaci souborů cookie přidruženou ke klientovi.

connect_timeout

Souhrn
Float popisující počet sekund čekání při pokusu o připojení k serveru. Použijte 0 pro nekonečné čekání (výchozí chování).
Typy
float
Výchozí
0
Konstantní
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]);

Poznámka

Toto nastavení musí být podporováno obslužným programem HTTP, který se používá k odeslání požadavku. connect_timeout je v současné době podporováno pouze vestavěným cURL handler.

debug

Souhrn

Nastavit na true nebo nastavit na proud PHP vrácený pomocí fopen() to povolit výstup ladění pomocí obslužného programu použitého k odeslání požadavku. Například, při použití cURL k přenosu požadavků, verbose cURL CURLOPT_VERBOSE. bude vyzařováno. Při použití obalu proudu PHP, obalu proudu budou emitována oznámení. Pokud je nastaveno na hodnotu true, výstup se zapíše do adresáře STDOUT jazyka PHP. Pokud je zadán proud PHP, výstup se vypíše do tohoto proudu.

Typy
  • bool
  • fopen() resource
Výchozí

Žádné

Konstantní

GuzzleHttp\RequestOptions::DEBUG

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

Spuštění výše uvedeného příkladu by vedlo k následujícímu výsledku:

* 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

Souhrn

Určete, zda Content-Encoding odpovědi (gzip, deflate atd.) automaticky dekódovány.

Typy
  • string
  • bool
Výchozí

true

Konstantní

GuzzleHttp\RequestOptions::DECODE_CONTENT

Tuto možnost lze použít k řízení způsobu, jakým jsou těla odpovědí s kódovaným obsahem zpracovávány. Ve výchozím nastavení je decode_content nastavena na hodnotu true, což znamená, že jakýkoli gzipovaný nebo deflovanou odpověď Guzzle dekóduje.

Pokud je nastaveno na false, tělo odpovědi není nikdy dekódováno, což znamená, že bajty projdou obslužným programem beze změny.

// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
    'headers'        => ['Accept-Encoding' => 'gzip'],
    'decode_content' => false
]);

Při nastavení na řetězec se dekódují bajty odpovědi a hodnota řetězce. poskytnutá možnosti decode_content je předána jako Accept-Encoding. v hlavičce požadavku.

// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);

delay

Souhrn

Počet milisekund zpoždění před odesláním požadavku.

Typy
  • celé číslo
  • float
Výchozí

null

Konstantní

GuzzleHttp\RequestOptions::DELAY

expect

Souhrn

Ovládá chování záhlaví "Expect: 100-Continue".

Typy
  • bool
  • integer
Výchozí

1048576

Konstantní

GuzzleHttp\RequestOptions::EXPECT

Nastavte na true pro povolení hlavičky "Expect: 100-Continue" pro všechny požadavky. které odesílají tělo. Nastavením na hodnotu false se hlavička "Expect: 100-Continue" zakáže. hlavičku pro všechny požadavky. Nastavte na číslo, aby velikost užitečného zatížení musela být být větší než toto číslo, aby bylo možné odeslat hlavičku Expect. Nastavení na hodnotu bude odeslána hlavička Expect pro všechny požadavky, u kterých je velikost nákladu větší než číslo. nelze určit nebo pokud tělo není možné přetočit.

Ve výchozím nastavení přidá Guzzle hlavičku "Expect: 100-Continue", pokud je velikost těla požadavku větší než 1 MB a požadavek používá protokol HTTP/1.1.

Poznámka

Tato možnost se projeví pouze při použití protokolu HTTP/1.1. HTTP/1.0 a HTTP/2.0 nepodporují hlavičku "Expect: 100-Continue". Podpora pro zpracování pracovního postupu "Expect: 100-Continue" musí být implementovat obsluhy HTTP Guzzle používané klientem.

force_ip_resolve

Souhrn
Nastavte hodnotu "v4", pokud chcete, aby obslužné programy HTTP používaly pouze protokol ipv4, nebo "v6" pro protokol ipv6.
Typy
řetězec
Výchozí
null
Konstantní
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']);

Poznámka

Toto nastavení musí být podporováno obslužným programem HTTP, který se používá k odeslání požadavku. force_ip_resolve je v současné době podporováno pouze vestavěným cURL a obslužnými programy stream.

form_params

Souhrn
Slouží k odeslání application/x-www-form-urlencoded POST požadavku.
Typy
pole
Konstantní
GuzzleHttp\RequestOptions::FORM_PARAMS

Asociativní pole názvů polí formuláře k hodnotám, kde každá hodnota je řetězec nebo pole řetězců. Nastaví hlavičku Content-Type na hodnotu application/x-www-form-urlencoded, pokud již žádná hlavička Content-Type není. přítomna.

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

Poznámka

form_params nelze použít s možností multipart. Budete muset použít jednu nebo druhou možnost. Použijte form_params pro application/x-www-form-urlencoded. a multipart pro multipart/form-data požadavky.

Tuto možnost nelze použít s body, multipart nebo json.

headers

Souhrn
Asociativní pole hlaviček, které se přidají do požadavku. Každý klíč je a každá hodnota je řetězec nebo pole řetězců. představující hodnoty polí hlaviček.
Typy
pole
Výchozí nastavení
Žádné
Konstantní
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']
    ]
]);

Záhlaví lze přidat jako výchozí možnosti při vytváření klienta. Když hlavičky jsou použity jako výchozí volby, použijí se pouze tehdy, pokud je vytvářený požadavek již neobsahuje konkrétní hlavičku. To zahrnuje jak požadavky předané klientovi v metodách send() a sendAsync(), tak požadavky vytvořené klientem (např. request() a 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

Souhrn
Nastavte na false pro zakázání vyhazování výjimek na protokolu HTTP. (tj. odpovědi 4xx a 5xx). Ve výchozím nastavení jsou výjimky vyhazovány, když Chyby protokolu HTTP.
Typy
bool
Výchozí
true
Konstantní
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

Varování

Tato možnost má vliv pouze v případě, že vaše obslužná rutina má příznak GuzzleHttp\Middleware::httpErrors middleware. Tento middleware je přidán ve výchozím nastavení, když je klient vytvořen bez obslužného programu, a je přidán pomocí GuzzleHttp\default_handler.

idn_conversion

Souhrn

Podpora internacionalizovaných doménových jmen (IDN) (ve výchozím nastavení povoleno, pokud intl je k dispozici rozšíření)

Typy
  • bool
  • int
Výchozí

true pokud je k dispozici intl rozšíření (a knihovna ICU je 4.6+ pro PHP 7.2+), false jinak

Konstantní

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

Zapíná/vypíná podporu IDN, lze také použít pro přesné ovládání kombinací IDNA_* konstanty (kromě IDNA_ERROR_*), viz $options parametr v sekci idn_to_ascii(). v dokumentaci pro více informací.

json

Souhrn
Volba json slouží ke snadnému nahrání dat v kódování JSON jako v těle požadavku. Hlavička Content-Type application/json bude přidána hlavička Content-Type, pokud již není ve zprávě přítomna.
Typy
Jakýkoli typ PHP, se kterým lze pracovat pomocí funkce json_encode().
Výchozí
Žádné
Konstantní
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Zde je příklad použití middlewaru tap pro zjištění, jaký požadavek je odeslán po drátě.

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

Poznámka

Tato možnost požadavku nepodporuje přizpůsobení hlavičky Content-Type. ani žádnou z možností funkce json_encode() jazyka PHP. funkce. Pokud potřebujete tato nastavení přizpůsobit, musíte předat funkci JSON zakódovaná data do požadavku sami pomocí body požadavku a musíte zadat správnou hlavičku Content-Type pomocí příkazu headers možnost požadavku.

Tuto možnost nelze použít s body, form_params nebo multipart.

multipart

Souhrn
Nastaví tělo požadavku na formulář multipart/form-data.
Typy
pole
Konstantní
GuzzleHttp\RequestOptions::MULTIPART

Hodnota multipart je pole asociativních polí, z nichž každé obsahuje následující dvojice klíč-hodnota:

  • name: (řetězec, povinné) název pole formuláře
  • obsah: (StreamInterface/resource/string, povinné) Data, která se mají použít v položce prvku formuláře.
  • headers: (pole) Nepovinné asociativní pole vlastních záhlaví, které se použije s prvkem formuláře.
  • název souboru: (string) Nepovinný řetězec, který se má poslat jako název souboru v části.
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'
        ],
    ]
]);

Poznámka

multipart nelze použít s možností form_params. Budete muset použít jednu nebo druhou možnost. Použijte form_params pro application/x-www-form-urlencoded. a multipart pro multipart/form-data požadavky.

Tuto možnost nelze použít s body, form_params nebo json.

on_headers

Souhrn

Volání, které je vyvoláno, když hlavičky HTTP odpovědi mají. ale tělo se ještě nezačalo stahovat.

Typy
  • callable
Konstantní

GuzzleHttp\RequestOptions::ON_HEADERS

Volání přijímá objekt Psr\Http\Message\ResponseInterface. Pokud dojde k výjimce je vyvolán voláním, pak slib spojený s odpovědí bude odmítnuta s GuzzleHttp\Exception\RequestException, který zabaluje výjimku, která byla vyhozena.

Možná budete potřebovat vědět, jaké hlavičky a stavové kódy byly přijaty, než bude možné zapsat data do sink.

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

Poznámka

Při psaní obslužných rutin HTTP je třeba vyvolat funkci on_headers. před zápisem dat do těla odpovědi.

on_stats

Souhrn

on_stats umožňuje získat přístup ke statistikám přenosu z požadavku a přístup k podrobnostem o přenosu na nižší úrovni obsluhy. spojeného s vaším klientem. on_stats je volání, které je vyvoláno když obslužná rutina dokončí odeslání požadavku. Zpětné volání je vyvoláno se statistikami přenosu o požadavku, přijaté odpovědi nebo o tom, zda byl požadavek odeslán. chybě, která se vyskytla. Součástí údajů je celkový čas potřebný k přenosu k odeslání požadavku.

Typy
  • callable
Konstantní

GuzzleHttp\RequestOptions::ON_STATS

Volání přijímá objekt 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());
        }
    }
]);

progress

Souhrn

Definuje funkci, která se vyvolá při postupu přenosu.

Typy
  • callable
Výchozí

Žádné

Konstantní

GuzzleHttp\RequestOptions::PROGRESS

Funkce přijímá následující poziční argumenty:

  • celkový počet bajtů, které mají být staženy, nula, pokud není známo.
  • počet dosud stažených bajtů
  • celkový počet bajtů, které se mají nahrát.
  • počet dosud nahraných bajtů
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Souhrn

Předejte řetězec pro zadání proxy serveru HTTP nebo pole pro zadání. různé proxy pro různé protokoly.

Typy
  • string
  • pole
Výchozí

Žádné

Konstantní

GuzzleHttp\RequestOptions::PROXY

Předejte řetězec pro zadání proxy pro všechny protokoly.

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

Předání asociativního pole pro zadání proxy serverů HTTP pro konkrétní schémata URI (tj. "http", "https"). Předejte no dvojici klíč-hodnota, která poskytne seznam hostitelů, na které by se nemělo proxy serverovat.

Poznámka

Guzzle tuto hodnotu automaticky doplní hodnotou vašeho prostředí. NO_PROXY proměnnou prostředí. Při zadání proxy možnost požadavku, je na vás, abyste uvedli hodnotu no vyparsovanou z NO_PROXY proměnné prostředí. (např. 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
    ]
]);

Poznámka

Můžete zadat adresy URL proxy serveru, které obsahují schéma, uživatelské jméno a heslo. Například "http://username:[email protected]:10".

query

Souhrn

Asociativní pole hodnot řetězce dotazu nebo řetězce dotazu, do kterého se přidá požadavku.

Typy
  • pole
  • string
Výchozí

Žádné

Konstantní

GuzzleHttp\RequestOptions::QUERY

// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);

Řetězce dotazů zadané v možnosti query přepíší všechny hodnoty řetězců dotazů zadané v URI požadavku.

// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);

read_timeout

Souhrn
Float popisující časový limit, který se použije při čtení streamovaného těla.
Typy
float
Výchozí
Výchozí hodnota je hodnota nastavení default_socket_timeout PHP ini.
Konstantní
GuzzleHttp\RequestOptions::READ_TIMEOUT

Časový limit se vztahuje na jednotlivé operace čtení na streamovaném těle (pokud je povolena volba 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

Souhrn

Určete, kam se uloží tělo odpovědi.

Typy
  • string (cesta k souboru na disku)
  • fopen() zdroj
  • Psr\Http\Message\StreamInterface
Výchozí

PHP temp stream

Konstantní

GuzzleHttp\RequestOptions::SINK

Předejte řetězec pro zadání cesty k souboru, do kterého bude uložen obsah těla odpovědi:

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

Předání zdroje vráceného z fopen() pro zápis odpovědi do PHP streamu:

$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);

Předání objektu Psr\Http\Message\StreamInterface pro streamování těla odpovědi do otevřeného streamu 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]);

Poznámka

Možnost požadavku save_to byla zrušena ve prospěch možnosti sink možnost požadavku. Poskytování možnosti save_to je nyní aliasem sink.

ssl_key

Souhrn

Zadejte cestu k souboru obsahujícímu soukromý klíč SSL ve formátu PEM. ve formátu PEM. Pokud je vyžadováno heslo, pak nastavte na pole obsahující cestu ke klíči SSL v prvním prvku pole, za kterým následuje požadované heslo. pro certifikát ve druhém prvku.

Typy
  • string
  • pole
Výchozí

Žádné

Konstantní

GuzzleHttp\RequestOptions::SSL_KEY

Poznámka

ssl_key je implementován obslužnými programy HTTP. V současné době je to pouze obsluha cURL, ale může být podporována i jinými obsluhami třetích stran. obslužných programů.

stream

Souhrn
Nastavte na true pro streamování odpovědi namísto jejího stažení. předem.
Typy
bool
Výchozí
false
Konstantní
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);
}

Poznámka

Podpora streamování odpovědí musí být implementována obslužným programem HTTP používaným pomocí klient. Tato možnost nemusí být podporována každým HTTP handlerem, ale rozhraní objektu odpovědi zůstává stejné bez ohledu na to, zda se jedná o objekt je podporováno obslužným programem, nebo ne.

synchronní

Souhrn
Nastavením na hodnotu true informujete obsluhy HTTP, že hodláte čekat na příkaz odpověď. To může být užitečné pro optimalizaci.
Typy
bool
Výchozí
žádné
Konstantní
GuzzleHttp\RequestOptions::SYNCHRONOUS

ověřit

Souhrn

Popisuje chování SSL certifikátu při ověření požadavku.

  • Nastavte na true, chcete-li povolit ověřování certifikátu SSL a použít výchozí hodnotu. CA poskytované operačním systémem.
  • Nastavte na false pro vypnutí ověřování certifikátu (je to nezabezpečené!)
  • Nastavte na řetězec pro zadání cesty ke svazku certifikačních autorit, aby bylo možné ověřování povolit. pomocí vlastního certifikátu.
Typy
  • bool
  • string
Výchozí

true

Konstantní

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

Pokud nepotřebujete konkrétní balíček certifikátů, Mozilla poskytuje běžně používaný balík certifikačních autorit, který lze stáhnout zde (poskytnutý správcem cURL). Jakmile máte k dispozici svazek certifikačních autorit na adrese na disku, můžete nastavit nastavení PHP ini "openssl.cafile" tak, aby ukazovalo na cestu k souboru souboru, což vám umožní vynechat možnost požadavku "verify". Mnohem více podrobností o SSL certifikáty naleznete na stránkách webových stránkách cURL.

timeout

Souhrn
Float popisující celkový časový limit požadavku v sekundách. Použijte 0 pro neomezené čekání (výchozí chování).
Typy
float
Výchozí
0
Konstantní
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'

verze

Souhrn
Verze protokolu, která se má použít při požadavku.
Typy
string, float
Výchozí
1.1
Konstantní
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);