Možnosti požiadavky

Požiadavky vytvorené a prenesené klientom môžete prispôsobiť pomocou možností požiadaviek. Možnosti požiadavky riadia rôzne aspekty požiadavky vrátane hlavičiek, parametrov reťazca dopytu, nastavení časového limitu, tela požiadavky a mnoho ďalšieho.

Všetky nasledujúce príklady používajú nasledujúceho klienta:

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

allow_redirects

Zhrnutie

Popisuje správanie presmerovania požiadavky

Typy
  • bool
  • array
Predvolené nastavenie
[
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    'track_redirects' => false
]
Neustále

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Nastavte na false pre vypnutie presmerovania.

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

Nastavte na true (predvolené nastavenie), aby ste povolili normálne presmerovania s maximálnym počtom 5 presmerovaní.

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

Môžete tiež odovzdať asociatívne pole obsahujúce nasledujúce dvojice kľúč - hodnota:

  • max: (int, predvolené=5) maximálny počet povolených presmerovaní.

  • strict: (bool, predvolené=false) Nastavte na true, ak chcete používať prísne presmerovania. Prísne presmerovania v súlade s RFC znamenajú, že požiadavky na presmerovanie POST sa posielajú ako POST požiadavky oproti tomu, čo robí väčšina prehliadačov, teda presmerovaniu POST požiadaviek s požiadavkami GET.

  • referer: (bool, predvolené=false) Nastavte na true, aby ste povolili pridanie odkazovača hlavičku pri presmerovaní.

  • protokoly: (pole, predvolené=['http', 'https']) Určuje, ktoré protokoly sú povolené pre požiadavky na presmerovanie.

  • on_redirect: (callable) Volanie PHP, ktoré sa vyvolá pri presmerovaní sa vyskytne presmerovanie. Táto volateľná príkazová položka sa vyvolá s pôvodnou požiadavkou a odpoveďou na presmerovanie, ktorá bola prijatá. Každá návratová hodnota z on_redirect sa ignoruje.

  • track_redirects: (bool) Ak je nastavené na true, každý presmerovaný URI a stav kód sa bude sledovať v X-Guzzle-Redirect-History a X-Guzzle-Redirect-Status-History hlavičky. Všetky URI a stavové kódy budú uložené v poradí, v akom sa vyskytli presmerovania.

    Poznámka: Pri sledovaní presmerovaní bude X-Guzzle-Redirect-History hlavička vylúči URI pôvodnej požiadavky a X-Guzzle-Redirect-Status-History hlavička vylúči 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...

Upozornenie

Táto možnosť má účinok len vtedy, ak má vaša obslužná funkcia GuzzleHttp\Middleware::redirect middleware. Tento middleware sa pridáva štandardne, keď je klient vytvorený bez obslužného programu, a pridáva sa pri vytváraní obslužného programu pomocou GuzzleHttp\HandlerStack::create.

Poznámka

Táto voľba nemá žiadny účinok pri zadávaní požiadaviek pomocou GuzzleHttp\Client::sendRequest(). Aby sa zachoval súlad s PSR-18, každá odpoveď na presmerovanie sa vráti taká, aká je.

auth

Zhrnutie

Odovzdanie poľa parametrov overovania HTTP, ktoré sa majú použiť s požiadavku. Pole musí obsahovať používateľské meno v indexe [0], heslo v indexe indexe [1] a voliteľne môžete poskytnúť zabudovaný typ overovania v index [2]. Ak chcete vypnúť overovanie pre požiadavku, odovzdajte null

Typy
  • pole
  • string
  • null
Predvolené nastavenie

Žiadne

Neustále

GuzzleHttp\RequestOptions::AUTH

Vstavané typy overovania sú tieto:

základné
Použite základné overenie HTTP v hlavičke Authorization (predvolené nastavenie sa používa, ak nie je zadaná žiadna zadané).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digest
Použitie overenia digitu (musí byť podporované obslužným programom HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Poznámka

V súčasnosti je to podporované len pri použití obslužného programu cURL, ale vytvorenie náhrady, ktorú možno použiť s akýmkoľvek obslužným programom HTTP, je plánuje.

ntlm
Použite Overovanie NTLM spoločnosti Microsoft (musí byť podporované spracovateľom HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Poznámka

V súčasnosti je to podporované len pri použití obslužného programu cURL.

body

Zhrnutie

Možnosť body sa používa na kontrolu tela entity (napr. PUT, POST, PATCH)

Typy
  • reťazec
  • fopen() zdroj
  • Psr\Http\Message\StreamInterface
Predvolené nastavenie

Žiadne

Neustále

GuzzleHttp\RequestOptions::BODY

Toto nastavenie je možné nastaviť na niektorý z nasledujúcich typov:

  • reťazec

    // Môžete odosielať požiadavky, ktoré používajú reťazec ako telo správy.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • zdroj vrátený z fopen()

    // Môžete posielať požiadavky, ktoré ako telo používajú prúdový zdroj.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • Psr\Http\Message\StreamInterface

    // Môžete posielať požiadavky, ktoré používajú objekt Guzzle stream ako telo
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream]);
    

Poznámka

Túto možnosť nemožno použiť s form_params, multipart alebo json

cert

Zhrnutie

Nastaviť na reťazec na zadanie cesty k súboru obsahujúcemu PEM vo formáte certifikátu na strane klienta. Ak sa vyžaduje heslo, potom nastavte na pole obsahujúce cestu k súboru PEM v prvom prvku poľa nasledované heslom požadovaným pre certifikát v druhom poli

Typy
  • reťazec
  • pole
Predvolené nastavenie

Žiadne

Neustále

GuzzleHttp\RequestOptions::CERT

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

cookies

Zhrnutie
Určuje, či sa v požiadavke používajú alebo nepoužívajú súbory cookie alebo aké súbory cookie nádobu použiť alebo aké súbory cookie sa majú odoslať.
Typy
GuzzleHttp\Cookie\CookieJarInterface
Predvolené nastavenie
Žiadne
Neustále
GuzzleHttp\RequestOptions::COOKIES

Musíte zadať možnosť cookies ako GuzzleHttp\Cookie\CookieJarInterface alebo false.

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

Upozornenie

Táto možnosť má účinok len vtedy, ak má vaša obslužná funkcia GuzzleHttp\Middleware::cookies middleware. Tento middleware sa pridáva predvolene, keď je klient vytvorený bez obslužného programu, a je pridaný pri vytváraní obslužného programu pomocou GuzzleHttp\default_handler.

Tip

Pri vytváraní klienta môžete nastaviť predvolenú možnosť cookie na true aby sa použila zdieľaná relácia súborov cookie spojená s klientom.

connect_timeout

Zhrnutie
Float popisujúci počet sekúnd, ktoré sa majú čakať pri pokuse o pripojenie k serveru. Použite 0 pre čakanie na neurčito (predvolené správanie).
Typy
float
Predvolené nastavenie
0
Neustále
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 nastavenie musí byť podporované obslužným programom HTTP použitým na odoslanie požiadavky. connect_timeout je v súčasnosti podporované len vstavaným cURL handler.

debug

Zhrnutie

Nastaviť na true alebo nastaviť na prúd PHP vrátený pomocou fopen() na umožniť výstup ladenia s obslužným programom použitým na odoslanie požiadavky. Napríklad, pri používaní cURL na prenos požiadaviek, verbose cURL CURLOPT_VERBOSE bude vypúšťané. Pri použití obalu prúdu PHP, obalu prúdu sa budú vysielať oznámenia. Ak je nastavená hodnota true, výstup sa zapíše do PHP STDOUT. Ak je zadaný prúd PHP, výstup sa zapíše do tohto prúdu.

Typy
  • bool
  • fopen() zdroj
Predvolené nastavenie

Žiadne

Neustále

GuzzleHttp\RequestOptions::DEBUG

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

Spustenie vyššie uvedeného príkladu by prinieslo nasledujúci výsledok:

* 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

Zhrnutie

Určite, či Content-Encoding odpovede (gzip, deflate atď.) automaticky dekódované.

Typy
  • reťazec
  • bool
Predvolené nastavenie

true

Neustále

GuzzleHttp\RequestOptions::DECODE_CONTENT

Túto možnosť možno použiť na riadenie spôsobu, akým sú telá odpovedí s kódovaným obsahom spracované. V predvolenom nastavení je decode_content nastavená na hodnotu true, čo znamená, že všetky gzipované alebo deflovanú odpoveď Guzzle dekóduje.

Ak je nastavená na false, telo odpovede sa nikdy nedekóduje, čo znamená, že bajty prejdú obslužným programom bez zmeny.

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

Ak je nastavená na reťazec, bajty odpovede sa dekódujú a hodnota reťazca poskytnutá možnosti decode_content sa odovzdá ako Accept-Encoding. hlavička požiadavky.

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

delay

Zhrnutie

Počet milisekúnd oneskorenia pred odoslaním požiadavky

Typy
  • celé číslo
  • float
Predvolené nastavenie

null

Neustále

GuzzleHttp\RequestOptions::DELAY

expect

Zhrnutie

Ovláda správanie hlavičky "Expect: 100-Continue"

Typy
  • bool
  • integer
Predvolené nastavenie

1048576

Neustále

GuzzleHttp\RequestOptions::EXPECT

Nastavte na true, aby ste povolili hlavičku "Expect: 100-Continue" pre všetky požiadavky ktoré odosielajú telo. Nastavte na false, aby ste zakázali hlavičku "Expect: 100-Continue". hlavičku pre všetky požiadavky. Nastavte na číslo, aby veľkosť užitočného zaťaženia musela byť väčšia ako toto číslo, aby sa odoslala hlavička Expect. Nastavenie na a sa odošle hlavička Expect pre všetky požiadavky, v ktorých je veľkosť sa nedá určiť alebo ak telo nie je možné pretáčať.

V predvolenom nastavení Guzzle pridá hlavičku "Expect: 100-Continue", keď je veľkosť tela požiadavky väčšia ako 1 MB a požiadavka používa protokol HTTP/1.1.

Poznámka

Táto možnosť sa uplatní len pri použití protokolu HTTP/1.1. HTTP/1.0 a HTTP/2.0 nepodporujú hlavičku "Expect: 100-Continue". Podpora spracovania pracovného postupu "Expect: 100-Continue" musí byť implementovať v obslužných programoch HTTP Guzzle, ktoré používa klient.

force_ip_resolve

Zhrnutie
Nastavte na "v4", ak chcete, aby obslužné programy HTTP používali iba protokol ipv4, alebo na "v6" pre protokol ipv6.
Typy
reťazec
Predvolené nastavenie
null
Neustále
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 nastavenie musí byť podporované obslužným programom HTTP použitým na odoslanie požiadavky. force_ip_resolve je v súčasnosti podporované len vstavaným cURL a obslužnými programami stream.

form_params

Zhrnutie
Slúži na odoslanie application/x-www-form-urlencoded POST požiadavky.
Typy
pole
Neustále
GuzzleHttp\RequestOptions::FORM_PARAMS

Asociatívne pole názvov polí formulára k hodnotám, kde každá hodnota je reťazec alebo pole reťazcov. Nastaví hlavičku Content-Type na application/x-www-form-urlencoded, ak sa už nenachádza žiadna hlavička Content-Type prítomná.

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

Poznámka

form_params nemožno použiť s možnosťou multipart. Budete musieť použiť jednu alebo druhú možnosť. Použite form_params pre application/x-www-form-urlencoded a multipart pre multipart/form-data požiadavky.

Túto možnosť nemožno použiť s body, multipart alebo json

headers

Zhrnutie
Asociatívne pole hlavičiek, ktoré sa majú pridať do požiadavky. Každý kľúč je názov hlavičky a každá hodnota je reťazec alebo pole reťazcov reprezentujúcich hodnoty polí hlavičiek.
Typy
pole
Predvolené nastavenia
Žiadne
Neustále
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']
    ]
]);

Hlavičky možno pridať ako predvolené možnosti pri vytváraní klienta. Keď hlavičky sú použité ako predvolené možnosti, použijú sa len vtedy, ak vytváraná požiadavka ešte neobsahuje konkrétnu hlavičku. To sa týka aj požiadaviek, ktoré boli odovzdané klientovi v metódach send() a sendAsync(), a požiadavky vytvorené klientom (napr. metódy 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

Zhrnutie
Nastavte na false, aby ste zakázali vyhadzovanie výnimiek na protokole HTTP (t. j. odpovede 4xx a 5xx). Výnimky sa štandardne vyhadzujú, keď sa vyskytnú chyby protokolu HTTP.
Typy
bool
Predvolené nastavenie
true
Neustále
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

Upozornenie

Táto možnosť má účinok len vtedy, ak má vaša obslužná funkcia GuzzleHttp\Middleware::httpErrors middleware. Tento middleware sa pridáva predvolene, keď je klient vytvorený bez obslužného programu, a je pridaný predvolene pri vytváraní obslužného programu pomocou GuzzleHttp\default_handler.

idn_conversion

Zhrnutie

Podpora internacionalizovaných názvov domén (IDN) (predvolene povolené, ak intl je k dispozícii rozšírenie)

Typy
  • bool
  • int
Predvolené nastavenie

true ak je k dispozícii intl rozšírenie (a knižnica ICU je 4.6+ pre PHP 7.2+), false inak

Neustále

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ína/vypína podporu IDN, môže sa použiť aj na presné ovládanie kombináciou IDNA_* konštanty (okrem IDNA_ERROR_*), pozri $options parameter v idn_to_ascii() v dokumentácii, kde nájdete ďalšie podrobnosti.

json

Zhrnutie
Možnosť json sa používa na jednoduché nahrávanie údajov v kódovaní JSON ako tela požiadavky. V hlavičke Content-Type application/json bude pridá, ak sa v správe už nenachádza žiadna hlavička Content-Type.
Typy
Akýkoľvek typ PHP, s ktorým možno pracovať pomocou funkcie json_encode().
Predvolené nastavenie
Žiadne
Neustále
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Tu je príklad použitia tap middleware na zistenie, aká požiadavka sa posiela po drôte.

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

Táto možnosť požiadavky nepodporuje prispôsobenie hlavičky Content-Type ani žiadnu z možností funkcie json_encode() jazyka PHP. funkcie. Ak potrebujete tieto nastavenia prispôsobiť, musíte odovzdať JSON zakódované údaje do požiadavky sami pomocou body požiadavky a musíte zadať správnu hlavičku Content-Type pomocou headers možnosť požiadavky.

Túto možnosť nemožno použiť s body, form_params alebo multipart

multipart

Zhrnutie
Nastaví telo požiadavky na formulár multipart/form-data.
Typy
pole
Neustále
GuzzleHttp\RequestOptions::MULTIPART

Hodnota multipart je pole asociatívnych polí, z ktorých každé obsahuje nasledujúce dvojice kľúč hodnota:

  • name: (reťazec, povinné) názov poľa formulára
  • obsah: (StreamInterface/resource/string, povinné) Údaje, ktoré sa majú použiť v prvku formulára.
  • hlavičky: (pole) Voliteľné asociatívne pole vlastných hlavičiek, ktoré sa majú použiť s prvkom formulára.
  • názov súboru: (reťazec) Nepovinný reťazec, ktorý sa má poslať ako názov súboru v časti.
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 nemožno použiť s možnosťou form_params. Budete musieť použiť jednu alebo druhú možnosť. Použite form_params pre application/x-www-form-urlencoded a multipart pre multipart/form-data požiadavky.

Túto možnosť nemožno použiť s body, form_params alebo json

on_headers

Zhrnutie

Calllable, ktorý sa vyvolá, keď hlavičky HTTP odpovede majú ale telo sa ešte nezačalo sťahovať.

Typy
  • callable
Neustále

GuzzleHttp\RequestOptions::ON_HEADERS

Volateľný súbor prijíma objekt Psr\Http\Message\ResponseInterface. Ak sa vyskytne výnimka je vyhodená volateľným objektom, potom sa sľub spojený s odpoveďou odmietne s GuzzleHttp\Exception\RequestException, ktorý zabalí výnimku, ktorá bola vyhodená.

Možno budete potrebovať vedieť, aké hlavičky a stavové kódy boli prijaté pred tým, ako sa údaje zapíšu do drezu.

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

Pri písaní obslužných programov HTTP sa musí zavolať funkcia on_headers pred zápisom údajov do tela odpovede.

on_stats

Zhrnutie

on_stats umožňuje získať prístup k štatistike prenosu žiadosti a prístup k podrobnostiam o prenose na nižšej úrovni spracovateľa spojeného s vaším klientom. on_stats je volateľný príkaz, ktorý sa vyvoláva keď obslužný program ukončí odosielanie požiadavky. Spätné volanie je vyvolané so štatistikami prenosu o požiadavke, prijatej odpovedi alebo vzniknutej chybe. V údajoch je zahrnutý celkový čas potrebný na na odoslanie požiadavky.

Typy
  • callable
Neustále

GuzzleHttp\RequestOptions::ON_STATS

Volateľný súbor prijíma 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

Zhrnutie

Definuje funkciu, ktorá sa vyvolá, keď sa dosiahne pokrok v prenose.

Typy
  • callable
Predvolené nastavenie

Žiadne

Neustále

GuzzleHttp\RequestOptions::PROGRESS

Funkcia prijíma nasledujúce pozičné argumenty:

  • celkový počet bajtov, ktoré sa majú stiahnuť, nula, ak nie je známy
  • počet doteraz stiahnutých bajtov
  • celkový počet bajtov, ktoré sa majú nahrať
  • počet doteraz nahraných bajtov
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Zhrnutie

Odovzdajte reťazec na zadanie proxy servera HTTP alebo pole na zadanie rôznych proxy serverov pre rôzne protokoly.

Typy
  • reťazec
  • pole
Predvolené nastavenie

Žiadne

Neustále

GuzzleHttp\RequestOptions::PROXY

Odovzdanie reťazca na zadanie proxy servera pre všetky protokoly.

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

Odovzdanie asociatívneho poľa na zadanie proxy serverov HTTP pre konkrétne schémy URI (t. j. "http", "https"). Poskytnite no dvojicu kľúč-hodnota na poskytnutie zoznamu názvov hostiteľov, na ktoré by sa nemalo proximovať.

Poznámka

Guzzle túto hodnotu automaticky doplní hodnotou vášho prostredia NO_PROXY premennou prostredia. Avšak pri poskytnutí proxy je na vás, aby ste poskytli hodnotu no analyzovanú z NO_PROXY premennej prostredia (napr. 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 poskytnúť adresy URL proxy servera, ktoré obsahujú schému, používateľské meno a heslo. Napríklad "http://username:[email protected]:10".

query

Zhrnutie

Asociatívne pole hodnôt reťazca dopytu alebo reťazec dopytu, ktorý sa má pridať požiadavku.

Typy
  • pole
  • string
Predvolené nastavenie

Žiadne

Neustále

GuzzleHttp\RequestOptions::QUERY

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

Reťazce dotazov zadané v možnosti query prepíšu všetky hodnoty reťazca dotazu zadané v URI požiadavky.

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

read_timeout

Zhrnutie
Float popisujúci časový limit, ktorý sa má použiť pri čítaní streamovaného tela
Typy
float
Predvolené nastavenie
Predvolené nastavenie je hodnota default_socket_timeout PHP ini nastavenia
Neustále
GuzzleHttp\RequestOptions::READ_TIMEOUT

Časový limit sa vzťahuje na jednotlivé operácie čítania na streamovanom tele (keď je povolená možnosť 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

Zhrnutie

Určite, kam sa uloží telo odpovede.

Typy
  • reťazec (cesta k súboru na disku)
  • fopen() zdroj
  • Psr\Http\Message\StreamInterface
Predvolené nastavenie

PHP temp stream

Neustále

GuzzleHttp\RequestOptions::SINK

Odovzdanie reťazca na zadanie cesty k súboru, do ktorého sa uloží obsah tela odpovede:

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

Odovzdanie prostriedku vráteného z fopen() na zápis odpovede do prúdu PHP:

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

Odovzdanie objektu Psr\Http\Message\StreamInterface na prenos tela odpovede do otvoreného prúdu 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žnosť save_to požiadavky bola zrušená v prospech možnosti sink možnosť požiadavky. Poskytovanie možnosti save_to je teraz alias sink.

ssl_key

Zhrnutie

Zadajte cestu k súboru, ktorý obsahuje súkromný kľúč SSL vo formáte PEM vo formáte PEM. Ak sa vyžaduje heslo, potom nastavte na pole obsahujúce cestu ku kľúču SSL v prvom prvku poľa, za ktorým nasleduje požadované heslo pre certifikát v druhom prvku.

Typy
  • reťazec
  • pole
Predvolené nastavenie

Žiadne

Neustále

GuzzleHttp\RequestOptions::SSL_KEY

Poznámka

ssl_key je implementovaný obslužnými programami HTTP. V súčasnosti je to len obsluha cURL, ale môže byť podporovaná aj inými obsluhami tretích strán. handlery.

stream

Zhrnutie
Nastaviť na true, aby sa odpoveď streamovala a nie sťahovala celá vopred.
Typy
bool
Predvolené nastavenie
false
Neustále
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 prúdových odpovedí musí byť implementovaná v obslužnom programe HTTP, ktorý používa klient. Túto možnosť nemusí podporovať každý obslužný program HTTP, ale rozhranie objektu odpovede zostáva rovnaké bez ohľadu na to, či ho obslužný program podporuje, alebo nie.

synchrónne

Zhrnutie
Nastavte na hodnotu true, aby ste informovali spracovateľov HTTP, že máte v úmysle čakať na odpoveď. Môže to byť užitočné pri optimalizácii.
Typy
bool
Predvolené nastavenie
žiadne
Neustále
GuzzleHttp\RequestOptions::SYNCHRONOUS

overiť

Zhrnutie

Popisuje správanie overenia SSL certifikátu pri požiadavke.

  • Nastavte na true, ak chcete zapnúť overovanie certifikátu SSL a použiť predvolené CA zväzok poskytovaný operačným systémom.
  • Nastavte na false, ak chcete vypnúť overovanie certifikátov (je to nezabezpečené!)
  • Nastavte na reťazec, aby ste poskytli cestu k zväzku certifikačných autorít na zapnutie overovania. pomocou vlastného certifikátu.
Typy
  • bool
  • string
Predvolené nastavenie

true

Neustále

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

Ak nepotrebujete konkrétny zväzok certifikátov, Mozilla poskytuje bežne používaný balík certifikačných autorít, ktorý si môžete stiahnuť tu (poskytuje ho správca cURL). Keď máte k dispozícii zväzok CA na disku, môžete nastaviť nastavenie PHP ini "openssl.cafile" tak, aby ukazovalo na cestu k súboru, čo vám umožní vynechať možnosť požiadavky "overiť". Oveľa podrobnejšie informácie o SSL certifikáty nájdete na stránke webovej stránke cURL.

timeout

Zhrnutie
Pohyblivý údaj popisujúci celkový časový limit požiadavky v sekundách. Použite 0 ak chcete čakať neobmedzene dlho (predvolené správanie).
Typy
float
Predvolené nastavenie
0
Neustále
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'

verzia

Zhrnutie
Verzia protokolu, ktorá sa má použiť pri požiadavke.
Typy
reťazec, float
Predvolené nastavenie
1.1
Neustále
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);