Opțiuni de solicitare

Puteți personaliza cererile create și transferate de un client folosind request options. Opțiunile de cerere controlează diverse aspecte ale unei cereri inclusiv, antetele, parametrii șirului de interogare, setările de timeout, corpul unei cerere și multe altele.

Toate exemplele următoare utilizează următorul client:

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

allow_redirects

Rezumat

Descrie comportamentul de redirecționare a unei cereri

Tipuri
  • bool
  • array
Implicit
[
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => 307847298343429311951'http', 'https'],
    'track_redirects' => false
]
Constant

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Setați la false pentru a dezactiva redirecționările.

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

Setați la true (setarea implicită) pentru a activa redirecționările normale cu un număr maxim de 5 redirecționări.

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

De asemenea, puteți transmite o matrice asociativă care conține următoarele perechi cheie-valoare:

  • max: (int, default=5) numărul maxim de redirecționări permise

  • strict: (bool, implicit=false) Setați la true pentru a utiliza redirecționări stricte. Redirecționările stricte conforme cu RFC înseamnă că cererile de redirecționare POST sunt trimise ca cereri POST, în loc să facă ceea ce fac majoritatea browserelor, adică să redirecționeze cererile POST cu cereri GET

  • referer: (bool, default=false) Setați la true pentru a permite adăugarea Referer-ului. la redirecționare

  • protocoale: (array, default=307847298343429311951'http', 'https'879849852657373008982) Specifică ce protocoale sunt permise pentru cererile de redirecționare

  • on_redirect: (callable) Callable PHP care este invocat atunci când se produce o redirecționare. este întâlnită. Acest callable este invocat cu cererea inițială și cu răspunsul de redirecționare care a fost primit. Orice valoare de returnare de la on_redirect este ignorată

  • track_redirects: (bool) Când este setat la true, fiecare URI redirecționat și starea cod întâlnit va fi urmărit în X-Guzzle-Redirect-History și în X-Guzzle-Redirect-History și X-Guzzle-Redirect-Status-History. Toate URI-urile și codurile de stare vor fi stocate în ordinea în care au fost întâlnite redirecționările.

    Notă: La urmărirea redirecționărilor, antetul X-Guzzle-Redirect-History va fi exclude URI-ul cererii inițiale și X-Guzzle-Redirect-Status-History header va exclude codul de stare final.

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

Avertisment

Această opțiune are efect numai dacă gestionarul tău are atributul GuzzleHttp\Middleware::redirect middleware. Acest middleware este adăugat în mod implicit atunci când un client este creat fără handler și este adăugat de către implicit atunci când se creează un gestionar cu GuzzleHttp\HandlerStack::create.

Notă

Această opțiune nu are niciun efect atunci când se fac cereri folosind GuzzleHttp\Client::sendRequest(). Pentru a rămâne în conformitate cu PSR-18, orice răspuns de redirecționare este returnat ca atare.

auth

Rezumat

Treceți o matrice de parametri de autentificare HTTP pentru a fi utilizați cu cerere. Matricea trebuie să conțină numele de utilizator în indexul [087984985265273008982, parola în indexul indexul [18798498526527373008982 și, opțional, puteți furniza un tip de autentificare încorporat în index [2]. Treceți null pentru a dezactiva autentificarea pentru o cerere.

Tipuri
  • array
  • șir de caractere
  • null
Implicit

Nici unul

Constant

GuzzleHttp\RequestOptions::AUTH

Tipurile de autentificare încorporate sunt următoarele:

de bază
Utilizați autentificarea HTTP de bază în antetul Authorization (setarea implicită utilizată dacă nu se utilizează niciuna specificată).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digest
Utilizați autentificarea prin digest (trebuie să fie acceptată de gestionarul HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Notă

În prezent, acest lucru este acceptat numai atunci când se utilizează gestionarul cURL, dar crearea unui înlocuitor care să poată fi utilizat cu orice gestionar HTTP este planificată.

ntlm
Utilizați Autentificare Microsoft NTLM (trebuie să fie acceptată de gestionarul HTTP).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Notă

În prezent, acest lucru este acceptat numai atunci când se utilizează gestionarul cURL.

body

Rezumat

Opțiunea body este utilizată pentru a controla corpul unei entități. cerere care înglobează o entitate (de exemplu, PUT, POST, PATCH)

Tipuri
  • string
  • fopen() resursă
  • Psr\Http\Message\StreamInterface
Implicit

Nici unul

Constant

GuzzleHttp\RequestOptions::BODY

Această setare poate fi setată la oricare dintre următoarele tipuri:

  • string

    // Puteți trimite cereri care utilizează un șir ca și corp al mesajului.
    $client->request('PUT', '/put', ['body' => 'foo'879849852657373008982);
    
  • resursă returnată din fopen()

    // Puteți trimite cereri care utilizează o resursă stream ca și corp.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource8798498526526573008982);
    
  • Psr\Http\Message\StreamInterface

    // Puteți trimite cereri care utilizează un obiect Guzzle stream ca și corp
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream8798498526526573008982);
    

Notă

Această opțiune nu poate fi utilizată cu form_params, multipart, sau json

cert

Rezumat

Setează un șir de caractere pentru a specifica calea către un fișier care conține un fișier PEM în format PEM. Dacă este necesară o parolă, setați la o matrice care conține calea către fișierul PEM în primul element al matricei. urmată de parola necesară pentru certificat în al doilea element de matrice. element.

Tipuri
  • string
  • array
Implicit

Nici unul

Constant

GuzzleHttp\RequestOptions::CERT

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

cookies

Rezumat
Specifică dacă sunt sau nu utilizate cookie-uri într-o cerere sau ce cookie-uri jar să se utilizeze sau ce cookie-uri să se trimită.
Tipuri
GuzzleHttp\Cookie\CookieJarInterface
Implicit
Nici unul
Constant
GuzzleHttp\RequestOptions::COOKIES

Trebuie să specificați opțiunea cookies ca GuzzleHttp\Cookie\CookieJarInterface sau false.

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

Avertisment

Această opțiune are efect numai dacă gestionarul tău are atributul GuzzleHttp\Middleware::cookies middleware. Acest middleware este adăugat în mod implicit atunci când un client este creat fără handler și este adăugat de către implicit atunci când se creează un gestionar cu GuzzleHttp\default_handler.

Sfat

Când creați un client, puteți seta opțiunea cookie implicită la true pentru a utiliza o sesiune cookie partajată asociată cu clientul.

connect_timeout

Rezumat
Flotant care descrie numărul de secunde de așteptare în timpul încercării de conectare la un server. Utilizați 0 pentru a aștepta pe termen nelimitat (comportamentul implicit).
Tipuri
float
Implicit
0
Constant
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]);

Notă

Această setare trebuie să fie acceptată de gestionarul HTTP utilizat pentru a trimite o cerere. connect_timeout este în prezent suportată numai de cURL încorporat. încorporat.

debug

Rezumat

Setați la true sau setați la un flux PHP returnat de fopen() pentru a a activa ieșirea de depanare cu gestionarul utilizat pentru a trimite o cerere. De exemplu, atunci când se utilizează cURL pentru a transfera cereri, verbose-ul lui cURL de CURLOPT_VERBOSE va fi emisă. Atunci când se utilizează înfășurătorul de fluxuri PHP, înfășurătorul de fluxuri vor fi emise notificări. Dacă este setat la true, ieșirea este scrisă în STDOUT al PHP. Dacă este furnizat un flux PHP, ieșirea este scrisă în fluxul respectiv.

Tipuri
  • bool
  • fopen()
  • resursă
Implicit

Nici unul

Constant

GuzzleHttp\RequestOptions::DEBUG

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

Rularea exemplului de mai sus ar produce ceva de genul următor:

* 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

Rezumat

Specificați dacă răspunsurile Content-Encoding (gzip, deflate, etc.) sunt decodate automat.

Tipuri
  • string
  • bool
Implicit

true

Constant

GuzzleHttp\RequestOptions::DECODE_CONTENT

Această opțiune poate fi utilizată pentru a controla modul în care corpurile de răspuns cu conținut codificat sunt sunt tratate. În mod implicit, decode_content este setată la true, ceea ce înseamnă că orice fișier gzipped sau deflatat va fi decodificat de Guzzle.

Atunci când este setat la false, corpul unui răspuns nu este niciodată decodificat, ceea ce înseamnă că octeții trec prin gestionarul neschimbat.

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

Atunci când este setat la un șir de caractere, octeții unui răspuns sunt decodificați și valoarea șirului de caractere furnizată la opțiunea decode_content este transmisă ca Accept-Encoding al cererii.

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

delay

Rezumat

Numărul de milisecunde de întârziere înainte de trimiterea cererii

Tipuri
  • integer
  • float
Implicit

null

Constant

GuzzleHttp\RequestOptions::DELAY

expect

Rezumat

Controlează comportamentul antetului "Expect: 100-Continue"

Tipuri
  • bool
  • integer
Implicit

1048576

Constant

GuzzleHttp\RequestOptions::EXPECT

Setați la true pentru a activa antetul "Expect: 100-Continue" pentru toate cererile care trimite un corp. Setați la false pentru a dezactiva antetul "Expect: 100-Continue" pentru toate cererile. Se setează la un număr astfel încât dimensiunea încărcăturii utile trebuie să să fie mai mare decât numărul pentru a trimite antetul "Expect". Setarea la un număr număr va trimite antetul Expect pentru toate cererile în care dimensiunea încărcăturii de încărcare este mai mare de un număr. payload nu poate fi determinată sau în cazul în care corpul nu este derulabil.

În mod implicit, Guzzle va adăuga antetul "Expect: 100-Continue" atunci când dimensiunea corpului unei cereri este mai mare de 1 MB și o cerere utilizează HTTP/1.1.

Notă

Această opțiune are efect numai atunci când se utilizează HTTP/1.1. Opțiunile HTTP/1.0 și HTTP/2.0 nu acceptă antetul "Expect: 100-Continue". Suportul pentru gestionarea fluxului de lucru "Expect: 100-Continue" trebuie să fie implementat de gestionarii HTTP Guzzle utilizați de un client.

force_ip_resolve

Rezumat
Setați "v4" dacă doriți ca gestionarii HTTP să utilizeze numai protocolul ipv4 sau "v6" pentru protocolul ipv6.
Tipuri
șir de caractere
Implicit
null
Constant
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']);

Notă

Această setare trebuie să fie acceptată de gestionarul HTTP utilizat pentru a trimite o cerere. force_ip_resolve este în prezent suportată numai de cURL încorporat. și gestionarii de flux.

form_params

Rezumat
Utilizat pentru a trimite o cerere application/x-www-form-urlencoded POST.
Tipuri
array
Constant
GuzzleHttp\RequestOptions::FORM_PARAMS

Matrice asociativă de nume de câmpuri de formular la valori, unde fiecare valoare este un șir de caractere sau o matrice de șiruri de caractere. Stabilește antetul Content-Type la application/x-www-form-urlencoded atunci când nu există deja un antet Content-Type. prezent.

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

Notă

form_params nu poate fi utilizat cu opțiunea multipart. Va trebui să utilizați una sau cealaltă. Utilizați form_params pentru application/x-www-form-urlencoded și multipart pentru cererile multipart/form-data.

Această opțiune nu poate fi utilizată cu body, multipart, sau json

headers

Rezumat
Matrice asociativă de anteturi care trebuie adăugate la cerere. Fiecare cheie este numele unui antet, iar fiecare valoare este un șir de caractere sau o matrice de șiruri. reprezentând valorile câmpurilor de antet.
Tipuri
array
Valori implicite
Nici unul
Constant
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']
    ]
]);

Antetele pot fi adăugate ca opțiuni implicite la crearea unui client. Atunci când antetele sunt folosite ca opțiuni implicite, acestea se aplică numai dacă cererea creată nu conține deja antetul respectiv. Acest lucru include atât cererile transmise către client în metodele send() și sendAsync(), precum și cererile create de client (de exemplu, request() și 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

Rezumat
Setați la false pentru a dezactiva aruncarea de excepții pe un protocol HTTP erori (de exemplu, răspunsurile 4xx și 5xx). Excepțiile sunt aruncate în mod implicit atunci când sunt întâlnite erori de protocol HTTP.
Tipuri
bool
Implicit
true
Constant
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

Avertisment

Această opțiune are efect numai dacă gestionarul tău are atributul GuzzleHttp\Middleware::httpErrors middleware. Acest middleware este adăugat în mod implicit atunci când un client este creat fără un handler, și este adăugat de către implicit atunci când se creează un gestionar cu GuzzleHttp\default_handler.

idn_conversie

Rezumat

Suport pentru nume de domeniu internaționalizate (IDN) (activat în mod implicit dacă este disponibilă extensia intl).

Tipuri
  • bool
  • int
Implicit

true dacă intl extensia este disponibilă (și biblioteca ICU este 4.6+ pentru PHP 7.2+), false altfel

Constant

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

Activează/dezactivează suportul IDN, poate fi utilizat și pentru un control precis prin combinarea constantele IDNA_* (cu excepția IDNA_ERROR_*), a se vedea parametrul $options din idn_to_ascii() pentru mai multe detalii.

json

Rezumat
Opțiunea json este utilizată pentru a încărca cu ușurință date codificate JSON ca fișier în corpul unei cereri. Un antet Content-Type de application/json va fi adăugat dacă nu există deja un antet Content-Type în mesaj.
Tipuri
Orice tip PHP care poate fi operat de funcția json_encode() PHP.
Implicit
Nici unul
Constant
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Iată un exemplu de utilizare a middleware-ului tap pentru a vedea ce cerere este trimisă pe fir.

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

Notă

Această opțiune de cerere nu acceptă personalizarea antetului Content-Type sau oricare dintre opțiunile din json_encode() funcție. Dacă aveți nevoie să personalizați aceste setări, atunci trebuie să treceți opțiunea datele codificate JSON în cerere chiar dvs. folosind body request și trebuie să specificați antetul corect Content-Type folosind opțiunea headers request option.

Această opțiune nu poate fi utilizată cu body, form_params, sau multipart

multipart

Rezumat
Stabilește corpul solicitării într-un formular multipart/form-data.
Tipuri
array
Constant
GuzzleHttp\RequestOptions::MULTIPART

Valoarea multipart este un tablou de tablouri asociative, fiecare conținând următoarele perechi cheie-valoare:

  • name: (string, obligatoriu) numele câmpului de formular
  • contents: (StreamInterface/resource/string, obligatoriu) Datele care trebuie utilizate în în elementul de formular.
  • headers: (array) Tablou asociativ opțional de anteturi personalizate care se utilizează cu cu elementul de formular.
  • filename: (string) Șir de caractere opțional care trebuie trimis ca nume de fișier în piesă.
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'
        ],
    ]
]);

Notă

multipart nu poate fi utilizat cu opțiunea form_params. Va trebui să folosiți una sau cealaltă. Utilizați form_params pentru application/x-www-form-urlencoded și multipart pentru cererile multipart/form-data.

Această opțiune nu poate fi utilizată cu body, form_params, sau json

on_headers

Rezumat

Un callable care este invocat atunci când anteturile HTTP ale răspunsului au fost primite, dar corpul nu a început încă să se descarce

Tipuri
  • callable
Constant

GuzzleHttp\RequestOptions::ON_HEADERS

Callable acceptă un obiect Psr\Http\Message\ResponseInterface. În cazul în care o excepție este aruncată de către callable, atunci promisiunea asociată cu răspunsul va fi fi respinsă cu un obiect GuzzleHttp\Exception\RequestException care înfășoară obiectul excepția care a fost aruncată.

Este posibil să aveți nevoie să știți ce antet și ce coduri de stare au fost primite înainte ca datele să poată fi scrise în receptor.

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

Notă

Atunci când se scriu gestionari HTTP, funcția on_headers trebuie invocată înainte de a scrie date în corpul răspunsului.

on_stats

Rezumat

on_stats vă permite să obțineți acces la statisticile de transfer ale unui fișier cerere și să accesați detaliile de transfer de nivel inferior ale gestionarului asociat cu clientul dumneavoastră. on_stats este un callable care este invocat atunci când un manipulator a terminat de trimis o cerere. Calback-ul este invocat cu statisticile de transfer privind cererea, răspunsul primit sau eroarea întâlnită. În date este inclusă cantitatea totală de timp necesară pentru a trimite cererea.

Tipuri
  • callable
Constant

GuzzleHttp\RequestOptions::ON_STATS

Acest callable acceptă un obiect 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

Rezumat

Definește o funcție care să fie invocată atunci când se realizează progresul transferului.

Tipuri
  • callable
Implicit

Nici unul

Constant

GuzzleHttp\RequestOptions::PROGRESS

Funcția acceptă următoarele argumente poziționale:

  • numărul total de octeți care se așteaptă să fie descărcați, zero dacă este necunoscut
  • numărul de octeți descărcați până în prezent
  • numărul total de octeți care se așteaptă să fie încărcați
  • numărul de octeți încărcați până în prezent
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Rezumat

Treceți un șir de caractere pentru a specifica un proxy HTTP, sau o matrice pentru a specifica diferite proxy-uri pentru diferite protocoale.

Tipuri
  • string
  • array
Implicit

Nici unul

Constant

GuzzleHttp\RequestOptions::PROXY

Treceți un șir de caractere pentru a specifica un proxy pentru toate protocoalele.

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

Treceți o matrice asociativă pentru a specifica proxy-uri HTTP pentru scheme URI specifice (de exemplu, "http", "https"). Furnizați o pereche cheie-valoare no pentru a furniza o listă de nume de gazde care nu ar trebui să facă obiectul unui proxy.

Notă

Guzzle va completa în mod automat această valoare cu valoarea mediului dvs. NO_PROXY variabila de mediu. Cu toate acestea, atunci când furnizați o proxy request option, depinde de dvs. să furnizați valoarea no analizată de la variabila de mediu NO_PROXY. (de exemplu, 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
    ]
]);

Notă

Puteți furniza URL-uri proxy care conțin o schemă, un nume de utilizator și o parolă. De exemplu, "http://username:[email protected]:10".

query

Rezumat

Matrice asociativă de valori ale șirului de interogare sau șir de interogare care trebuie adăugat la la cerere

Tipuri
  • array
  • șir de caractere
Implicit

Nici unul

Constant

GuzzleHttp\RequestOptions::QUERY

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

Șirurile de interogare specificate în opțiunea query vor suprascrie toate valorile șirurilor de interogare furnizate în URI-ul unei cereri.

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

read_timeout

Rezumat
Float care descrie timpul de așteptare care trebuie utilizat la citirea unui corp transmis în flux
Tipuri
float
Implicit
Valoarea implicită este valoarea din default_socket_timeout setarea ini PHP
Constant
GuzzleHttp\RequestOptions::READ_TIMEOUT

Timpul de așteptare se aplică operațiilor individuale de citire pe un corp transmis în flux (atunci când opțiunea stream este activată).

$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

Rezumat

Specificați unde va fi salvat corpul unui răspuns.

Tipuri
  • string (calea către fișierul de pe disc)
  • fopen() resursă
  • Psr\Http\Message\StreamInterface
Implicit

Fluxul temporar PHP

Constant

GuzzleHttp\RequestOptions::SINK

Se trece un șir de caractere pentru a specifica calea către un fișier care va stoca conținutul corpului răspunsului:

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

Treceți o resursă returnată de la fopen() pentru a scrie răspunsul pe un flux PHP:

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

Treceți un obiect Psr\Http\Message\StreamInterface pentru a transmite corpul răspunsului către un flux PSR-7 deschis.

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

Notă

Opțiunea de solicitare save_to a fost eliminată în favoarea opțiunii de solicitare save_to. opțiunea de cerere sink. Furnizarea opțiunii save_to este acum un alias de sink.

ssl_key

Rezumat

Specificați calea către un fișier care conține o cheie privată SSL în PEM în format PEM. Dacă este necesară o parolă, setați o matrice care conține calea de acces. către cheia SSL în primul element al tabloului, urmată de parola necesară. pentru certificat în al doilea element.

Tipuri
  • string
  • array
Implicit

Nici unul

Constant

GuzzleHttp\RequestOptions::SSL_KEY

Notă

ssl_key este implementat de gestionarii HTTP. În prezent, acest lucru este doar de către gestionarul cURL, dar ar putea fi suportată și de alte părți terțe. terți.

stream

Rezumat
Setați la true pentru a transmite în flux un răspuns în loc să îl descărcați în întregime în avans.
Tipuri
bool
Implicit
false
Constant
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);
}

Notă

Suportul pentru răspuns în flux trebuie implementat de gestionarul HTTP utilizat de către un client. Este posibil ca această opțiune să nu fie suportată de fiecare gestionar HTTP, dar este posibil ca opțiunea interfața obiectului de răspuns rămâne aceeași, indiferent dacă dacă este sau nu acceptată de gestionarul de răspuns.

sincron

Rezumat
Setați la true pentru a informa gestionarii HTTP că intenționați să așteptați pe răspunsul. Acest lucru poate fi util pentru optimizări.
Tipuri
bool
Implicit
niciunul
Constant
GuzzleHttp\RequestOptions::SYNCHRONOUS

verify

Rezumat

Descrie comportamentul de verificare a certificatului SSL al unei cereri.

  • Setați la true pentru a activa verificarea certificatului SSL și a utiliza comportamentul implicit. CA furnizată de sistemul de operare.
  • Setați la false pentru a dezactiva verificarea certificatelor (este nesigur!).
  • Setați la un șir de caractere pentru a furniza calea către un pachet CA pentru a activa verificarea folosind un certificat personalizat
Tipuri
  • bool
  • string
Implicit

true

Constant

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

Dacă nu aveți nevoie de un pachet de certificate specific, Mozilla oferă o opțiune pachet de certificate CA utilizat în mod obișnuit, care poate fi descărcat aici (furnizat de administratorul cURL). Odată ce aveți un pachet CA disponibil pe pe disc, puteți seta setarea "openssl.cafile" din PHP ini pentru a indica calea de acces la fișierului, permițându-vă să omiteți opțiunea de solicitare "verify". Mai multe detalii despre certificatele SSL pot fi găsite pe site-ul cURL website.

timeout

Rezumat
Valoarea flotantă care descrie timpul total de așteptare a cererii în secunde. Utilizați 0 pentru a aștepta pe termen nedefinit (comportamentul implicit).
Tipuri
float
Implicit
0
Constant
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'

versiune

Rezumat
Versiunea protocolului care trebuie utilizată în cadrul cererii.
Tipuri
șir de caractere, float
Implicit
1.1
Constant
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);