Verzoek Opties

U kunt verzoeken die door een cliënt zijn gemaakt en verzonden aanpassen met verzoek opties. Verzoek opties regelen verschillende aspecten van een verzoek inclusief, headers, query string parameters, timeout instellingen, de body van een verzoek, en nog veel meer.

Alle volgende voorbeelden gebruiken de volgende client:

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

allow_redirects

Samenvatting

Beschrijft het redirect gedrag van een verzoek

Soorten
  • bool
  • array
Standaard
[
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    "track_redirects" => false
]
Constant

GuzzleHttpRequestOptions::ALLOW_REDIRECTS

Zet op false om redirects uit te schakelen.

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

Zet op true (de standaard instelling) om normale redirects te activeren met een maximum aantal van 5 redirects.

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

U kunt ook een associatieve array doorgeven die de volgende sleutel-waardeparen bevat:

  • max: (int, default=5) maximum aantal toegestane redirects.

  • strict: (bool, default=false) Zet op true om strikte redirects te gebruiken. Strikte RFC-conforme redirects betekent dat POST redirect verzoeken verzonden worden als POST verzoeken in plaats van te doen wat de meeste browsers doen, namelijk POST verzoeken omleiden met GET verzoeken.

  • referer: (bool, default=false) Zet op true om de Referer header toe te voegen bij het omleiden.

  • protocols: (array, default=['http', 'https']) Gespecificeerd welke protocols toegestaan voor redirect verzoeken.

  • on_redirect: (calllable) PHP calllable die aangeroepen wordt wanneer een redirect wordt tegengekomen. De calllable wordt aangeroepen met het originele verzoek en het redirect antwoord dat werd ontvangen. Elke terugkeerwaarde van de on_redirect functie wordt genegeerd.

  • track_redirects: (bool) Indien ingesteld op true zal elke URI en statuscode die wordt doorverwezen gevolgd worden in de X-Guzzle-Redirect-History. code worden bijgehouden in de X-Guzzle-Redirect-History en X-Guzzle-Redirect-History. X-Guzzle-Redirect-Status-History headers respectievelijk. Alle URI's en status codes zullen worden opgeslagen in de volgorde waarin de redirects werden aangetroffen.

    Opmerking: Bij het traceren van redirects zal de X-Guzzle-Redirect-History header de URI van het initiële verzoek uitsluiten en de X-Guzzle-Redirect-Status-History header zal de uiteindelijke statuscode uitsluiten.

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

Waarschuwing

Deze optie heeft enkel effect als je handler de GuzzleHttpMiddleware::redirect middleware heeft. Deze middleware wordt standaard toegevoegd standaard toegevoegd wanneer een client wordt aangemaakt zonder handler, en wordt standaard toegevoegd standaard toegevoegd wanneer je een handler aanmaakt met GuzzleHttpHandlerStack::create.

Noot

Deze optie heeft geen effect bij het maken van verzoeken met GuzzleHttpClient::sendRequest(). Om te voldoen aan PSR-18 wordt elk redirect antwoord teruggestuurd zoals het is.

auth

Samenvatting

Geef een array van HTTP authenticatie parameters door om te gebruiken met het verzoek. De array moet de gebruikersnaam bevatten in index [0], het paswoord in index [1], en u kunt optioneel een ingebouwd authenticatietype opgeven in index [2]. Geef null door om de authenticatie voor een request uit te schakelen.

Soorten
  • array
  • string
  • null
Standaard

Geen

Constant

GuzzleHttpRequestOptions::AUTH

De ingebouwde verificatietypes zijn als volgt:

basis
Gebruik basis HTTP-authenticatie in de Authorization header (de standaardinstelling wordt gebruikt als er geen is opgegeven).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digest
Gebruik digest authentication (moet ondersteund worden door de HTTP handler).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Noot

Dit wordt momenteel alleen ondersteund bij gebruik van de cURL handler, maar het maken van een vervanging die kan worden gebruikt met elke HTTP handler is gepland.

ntlm
Gebruik Microsoft NTLM authenticatie (moet worden ondersteund door de HTTP-handler).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Noot

Dit wordt momenteel alleen ondersteund bij gebruik van de cURL-handler.

body

Samenvatting

De body optie wordt gebruikt om de body van een entiteit omhullende verzoek (bijv. PUT, POST, PATCH).

Soorten
  • string
  • fopen() resource
  • PsrHttpMessageStreamInterface
Standaard

Geen

Constant

GuzzleHttpRequestOptions::BODY

Deze instelling kan op een van de volgende types worden ingesteld:

  • string

    // Je kunt requests versturen die een string gebruiken als de body van het bericht.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • bron geretourneerd van fopen()

    // Je kan verzoeken versturen die een stream resource als body gebruiken.
    $resource = \GuzzleHttp::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • PsrHttpMessageStreamInterface

    // Je kunt verzoeken sturen die een Guzzle stream-object als body gebruiken
    $stream = GuzzleHttp::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream]);
    

Noot

Deze optie kan niet gebruikt worden met form_params, multipart, of json

cert

Samenvatting

Ingesteld op een string om het pad te specificeren naar een bestand dat een PEM geformatteerd client-side certificaat bevat. Indien een wachtwoord vereist is, stel dan in een array met het pad naar het PEM-bestand in het eerste array-element gevolgd door het wachtwoord dat vereist is voor het certificaat in het tweede array element.

Soorten
  • string
  • array
Standaard

Geen

Constant

GuzzleHttpRequestOptions::CERT

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

cookies

Samenvatting
Specificeert of er al dan niet cookies worden gebruikt in een verzoek of welke cookie pot moet worden gebruikt of welke cookies moeten worden verzonden.
Soorten
GuzzleHttpCookieJarInterface
Standaard
Geen
Constant
GuzzleHttpRequestOptions::COOKIES

Je moet de cookies optie specificeren als een GuzzleHttpCookieJarInterface of false.

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

Waarschuwing

Deze optie heeft enkel effect als je handler de GuzzleHttpMiddleware::cookies middleware heeft. Deze middleware wordt standaard toegevoegd standaard toegevoegd wanneer een client wordt aangemaakt zonder handler, en wordt standaard toegevoegd standaard toegevoegd wanneer je een handler aanmaakt met GuzzleHttp\default_handler.

Tip

Wanneer je een client aanmaakt, kan je de standaard cookie-optie op true zetten om een gedeelde cookie-sessie te gebruiken die geassocieerd is met de client.

connect_timeout

Samenvatting
Float die het aantal seconden beschrijft dat moet worden gewacht bij het met een server. Gebruik 0 om oneindig te wachten (het standaard gedrag).
Soorten
float
Standaard
0
Constant
GuzzleHttpRequestOptions::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]);

Noot

Deze instelling moet ondersteund worden door de HTTP handler die gebruikt wordt om een request te versturen. connect_timeout wordt momenteel enkel ondersteund door de ingebouwde cURL handler.

debug

Samenvatting

Instellen op true of instellen op een PHP stream geretourneerd door fopen() om debug output mogelijk te maken met de handler die gebruikt werd om een verzoek te versturen. Bijvoorbeeld, wanneer je cURL gebruikt om verzoeken te versturen, zal cURL's verbose van CURLOPT_VERBOSE zal worden uitgezonden. Bij gebruik van de PHP stream wrapper, zullen stream wrapper meldingen worden verzonden. Indien ingesteld op true, wordt de uitvoer geschreven naar PHP's STDOUT. Als een PHP stream wordt verstrekt, wordt de uitvoer naar de stream geschreven.

Soorten
  • bool
  • fopen() resource
Standaard

Geen

Constant

GuzzleHttpRequestOptions::DEBUG

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

Het uitvoeren van het bovenstaande voorbeeld zou iets als het volgende opleveren:

* 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

Samenvatting

Geef aan of Content-Encoding antwoorden (gzip, deflate, etc.) automatisch gedecodeerd worden.

Soorten
  • string
  • bool
Standaard

true

Constant

GuzzleHttpRequestOptions::DECODE_CONTENT

Deze optie kan worden gebruikt om te bepalen hoe inhoudelijk gecodeerde behandeld worden. Standaard is decode_content ingesteld op true, wat betekent dat elke gzipped of deflated respons zal gedecodeerd worden door Guzzle.

Indien ingesteld op false wordt de body van een antwoord nooit gedecodeerd, wat betekent dat de bytes ongewijzigd door de handler gaan.

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

Indien ingesteld op een string, worden de bytes van een antwoord gedecodeerd en de stringwaarde die aan de decode_content optie werd meegegeven als de Accept-Encoding header van het verzoek.

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

delay

Samenvatting

Het aantal milliseconden te vertragen alvorens het verzoek te verzenden.

Soorten
  • integer
  • float
Standaard

null

Constant

GuzzleHttpRequestOptions::DELAY

verwacht

Samenvatting

Controleert het gedrag van de "Verwacht: 100-Volgende" koptekst.

Soorten
  • bool
  • integer
Standaard

1048576

Constant

GuzzleHttpRequestOptions::EXPECT

Zet op true om de "Expect: 100-Continue" header in te schakelen voor alle verzoeken die een body stuurt. Zet op false om de "Expect: 100-Continue" header uit te schakelen voor alle verzoeken. Stel in op een getal zodat de grootte van de payload groter moet zijn dan het getal om de "Expect" header te versturen. Instellen op een getal zal de Expect header sturen voor alle verzoeken waarbij de grootte van de payload niet kan worden bepaald of waarbij de body niet terugspoelbaar is.

Standaard zal Guzzle de "Expect: 100-Continue" header toevoegen wanneer de grootte van de body van een verzoek groter is dan 1 MB en een verzoek HTTP/1.1 gebruikt.

Noot

Deze optie treedt alleen in werking bij gebruik van HTTP/1.1. De HTTP/1.0 en HTTP/2.0 protocollen ondersteunen de "Expect: 100-Continue" header niet. Ondersteuning voor de afhandeling van de "Expect: 100-Continue" workflow moet worden geïmplementeerd door Guzzle HTTP-handlers die door een client worden gebruikt.

force_ip_resolve

Samenvatting
Zet op "v4" als je wilt dat de HTTP handlers alleen het ipv4 protocol gebruiken of "v6" voor het ipv6 protocol.
Soorten
string
Standaard
null
Constant
GuzzleHttpRequestOptions::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']);

Noot

Deze instelling moet ondersteund worden door de HTTP handler die gebruikt wordt om een request te versturen. force_ip_resolve wordt momenteel enkel ondersteund door de ingebouwde cURL en stream handlers.

form_params

Samenvatting
Wordt gebruikt om een application/x-www-form-urlencoded POST verzoek te versturen.
Soorten
matrix
Constant
GuzzleHttpRequestOptions::FORM_PARAMS

Associatieve matrix van formulierveldnamen naar waarden waarbij elke waarde een string of array van strings is. Stelt de Content-Type header in op application/x-www-form-urlencoded als er nog geen Content-Type header aanwezig is.

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

Noot

form_params kan niet gebruikt worden met de multipart optie. Je moet de een of de ander gebruiken. Gebruik form_params voor application/x-www-form-urlencoded verzoeken, en multipart voor multipart/form-data verzoeken.

Deze optie kan niet gebruikt worden met body, multipart, of json

headers

Samenvatting
Associatieve array van headers om aan het verzoek toe te voegen. Elke sleutel is de naam van een header, en elke waarde is een string of array van strings die de waarden van de headervelden weergeven.
Soorten
matrix
Standaards
Geen
Constant
GuzzleHttpRequestOptions::HEADERS
// Set various headers on a request
$client->request('GET', '/get', [
    'headers' => [
        'User-Agent' => 'testing/1.0',
        'Accept'     => 'application/json',
        'X-Foo'      => ['Bar', 'Baz']
    ]
]);

Headers kunnen als standaardopties worden toegevoegd bij het aanmaken van een client. Wanneer headers worden gebruikt als standaardopties, worden ze alleen toegepast als het verzoek dat wordt aangemaakt de specifieke header nog niet bevat. Dit geldt zowel voor verzoeken die aan de client in de send() en sendAsync() methodes, en verzoeken die door de cliënt zijn aangemaakt (bijvoorbeeld request() en 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

Samenvatting
Zet op false om het gooien van excepties op een HTTP protocol fouten (d.w.z. 4xx en 5xx antwoorden). Standaard worden excepties gegooid wanneer HTTP protocol fouten worden aangetroffen.
Soorten
bool
Standaard
true
Constant
GuzzleHttpRequestOptions::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

Waarschuwing

Deze optie heeft enkel effect als je handler de GuzzleHttpMiddleware::httpErrors middleware heeft. Deze middleware wordt standaard toegevoegd standaard wanneer een client wordt aangemaakt zonder handler, en wordt standaard toegevoegd standaard toegevoegd wanneer je een handler aanmaakt met GuzzleHttpHttp_default_handler.

idn_conversion

Samenvatting

Ondersteuning voor IDN (Internationalized Domain Name) (standaard ingeschakeld indien intl extensie beschikbaar is).

Soorten
  • bool
  • int
Standaard

true indien intl extensie beschikbaar is (en ICU library is 4.6+ voor PHP 7.2+), false anders

Constant

GuzzleHttpRequestOptions::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

Schakelt IDN ondersteuning in/uit, kan ook gebruikt worden voor precieze controle door het combineren van IDNA_* constanten (behalve IDNA_ERROR_*), zie $options parameter in idn_to_ascii() documentatie voor meer details.

json

Samenvatting
De json optie wordt gebruikt om gemakkelijk JSON gecodeerde data te uploaden als de body van een verzoek. Een Content-Type header van application/json zal worden toegevoegd indien er nog geen Content-Type header aanwezig is op het bericht.
Soorten
Elk PHP-type dat kan bediend worden door PHP's json_encode() functie.
Standaard
Geen
Constant
GuzzleHttpRequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Hier is een voorbeeld van het gebruik van de tap middleware om te zien welk verzoek over de draad wordt gestuurd.

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

Noot

Deze verzoekoptie ondersteunt niet het aanpassen van de Content-Type header of één van de opties van PHP's json_encode() functie. Indien u deze instellingen wenst aan te passen, dan moet u de JSON gecodeerde data zelf in het verzoek meegeven met de body verzoek optie en je moet de juiste Content-Type header specificeren met de headers verzoekoptie.

Deze optie kan niet gebruikt worden met body, form_params, of multipart.

multipart

Samenvatting
Stelt de body van het verzoek in op een multipart/form-data formulier.
Soorten
matrix
Constant
GuzzleHttpRequestOptions::MULTIPART

De waarde van multipart is een array van associatieve arrays, die elk de volgende sleutel-waardeparen bevatten:

  • naam: (string, vereist) de naam van het formulierveld
  • inhoud: (StreamInterface/resource/string, vereist) De gegevens om te gebruiken in het formulierelement.
  • headers: (array) Optionele associatieve array van aangepaste headers om te gebruiken met het formulierelement.
  • bestandsnaam: (string) Optionele string om mee te sturen als bestandsnaam in het onderdeel.
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'
        ],
    ]
]);

Noot

multipart kan niet gebruikt worden met de form_params optie. Je moet de ene of de andere gebruiken. Gebruik form_params voor application/x-www-form-urlencoded verzoeken, en multipart voor multipart/form-data verzoeken.

Deze optie kan niet gebruikt worden met body, form_params, of json

on_headers

Samenvatting

Een calllable die wordt aangeroepen wanneer de HTTP headers van het antwoord zijn ontvangen zijn maar de download van de body nog niet begonnen is.

Soorten
  • callable
Constant

GuzzleHttpRequestOptions::ON_HEADERS

De callable aanvaardt een PsrHttpMessageResponseInterface object. Als een exception wordt gegooid door de calllable, dan zal de belofte geassocieerd met het antwoord afgewezen worden met een GuzzleHttpExceptionRequestException dat de gegooide exceptie omsluit uitzondering die werd gegooid.

Het kan nodig zijn te weten welke headers en statuscodes ontvangen zijn voordat gegevens naar de sink geschreven kunnen worden.

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

Noot

Wanneer je HTTP handlers schrijft, moet de on_headers functie aangeroepen worden vooraleer gegevens naar de body van het antwoord te schrijven.

on_stats

Samenvatting

on_stats laat je toe om toegang te krijgen tot transfer statistieken van een verzoek en toegang te krijgen tot de lagere transfer details van de handler geassocieerd met je client. on_stats is een calllable die aangeroepen wordt wanneer een handler klaar is met het verzenden van een verzoek. De callback wordt aangeroepen met overdrachtsstatistieken over het verzoek, het ontvangen antwoord, of de fout die is opgetreden. Inbegrepen in de gegevens is de totale hoeveelheid tijd die nodig om het verzoek te verzenden.

Soorten
  • callable
Constant

GuzzleHttpRequestOptions::ON_STATS

De calllable aanvaardt een GuzzleHttpTransferStats object.

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

vooruitgang

Samenvatting

Definieert een functie om aan te roepen wanneer de overdracht vordert.

Soorten
  • callable
Standaard

Geen

Constant

GuzzleHttpRequestOptions::PROGRESS

De functie aanvaardt de volgende positionele argumenten:

  • het totale aantal bytes dat naar verwachting zal worden gedownload, nul indien onbekend
  • het aantal bytes dat tot nu toe is gedownload
  • het totale aantal bytes dat naar verwachting zal worden geüpload
  • het aantal bytes dat tot nu toe is geüpload
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Samenvatting

Geef een string door om een HTTP proxy te specificeren, of een array om verschillende proxies voor verschillende protocols.

Soorten
  • string
  • array
Standaard

Geen

Constant

GuzzleHttpRequestOptions::PROXY

Geef een string door om een proxy te specificeren voor alle protocollen.

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

Geef een associatieve array door om HTTP proxies te specificeren voor specifieke URI schema's (d.w.z., "http", "https"). Geef een no sleutel-waarde paar om een lijst te geven van hostnamen waarnaar niet geproxied moet worden.

Noot

Guzzle zal deze waarde automatisch vullen met de omgevingsvariabele NO_PROXY omgevingsvariabele. Echter, wanneer je een proxy verzoekoptie, is het aan u om de no waarde te verstrekken die ontleend is aan de NO_PROXY omgevingsvariabele (bv., 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
    ]
]);

Noot

Je kan proxy URLs voorzien die een schema, gebruikersnaam en paswoord bevatten. Bijvoorbeeld, "http://username:[email protected]:10".

query

Samenvatting

Associatieve array van query string waarden of query string toe te voegen aan het verzoek.

Soorten
  • array
  • string
Standaard

Geen

Constant

GuzzleHttpRequestOptions::QUERY

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

Query strings gespecificeerd in de query optie zullen alle query string waarden overschrijven die in de URI van een verzoek zijn meegegeven.

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

read_timeout

Samenvatting
Float die de time-out beschrijft die moet worden gebruikt bij het lezen van een gestreamde body
Soorten
float
Standaard
Wordt standaard ingesteld op de waarde van de default_socket_timeout PHP ini instelling
Constant
GuzzleHttpRequestOptions::READ_TIMEOUT

De time-out geldt voor individuele leesoperaties op een gestreamd lichaam (wanneer de stream optie is ingeschakeld).

$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

Samenvatting

Specificeer waar de body van een antwoord wordt opgeslagen.

Soorten
  • string (pad naar bestand op schijf)
  • fopen() resource
  • PsrttpMessageStreamInterface
Standaard

PHP temp stream

Constant

GuzzleHttpRequestOptions::SINK

Geef een tekenreeks door om het pad naar een bestand op te geven dat de inhoud van het responslichaam zal opslaan:

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

Geef een bron door geretourneerd door fopen() om het antwoord naar een PHP stream te schrijven:

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

Geef een PsrttpMessageStreamInterface object door om de response body naar een open PSR-7 stream te streamen.

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

Noot

De save_to verzoek optie is afgeschreven ten gunste van de sink verzoekoptie. Het voorzien van de save_to optie is nu een alias van sink.

ssl_key

Samenvatting

Geef het pad op naar een bestand met een private SSL-sleutel in PEM formaat. Indien een wachtwoord vereist is, stel dan een array in met het pad naar de SSL-sleutel in het eerste array-element, gevolgd door het wachtwoord voor het certificaat in het tweede element.

Soorten
  • string
  • array
Standaard

Geen

Constant

GuzzleHttpRequestOptions::SSL_KEY

Noot

ssl_key wordt geïmplementeerd door HTTP handlers. Dit wordt momenteel enkel ondersteund door de cURL handler, maar zou ondersteund kunnen worden door andere third-part handlers.

stream

Samenvatting
Zet op true om een antwoord te streamen in plaats van het volledig op voorhand.
Soorten
bool
Standaard
false
Constant
GuzzleHttpRequestOptions::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);
}

Noot

Ondersteuning voor streaming response moet worden geïmplementeerd door de HTTP-handler die wordt gebruikt door een client. Deze optie wordt misschien niet door elke HTTP handler ondersteund, maar de interface van het response object blijft hetzelfde ongeacht of het al dan niet ondersteund wordt door de handler.

synchroon

Samenvatting
Stel in op true om HTTP handlers te informeren dat u van plan bent te wachten op het antwoord. Dit kan nuttig zijn voor optimalisaties.
Soorten
bool
Standaard
geen
Constant
GuzzleHttpRequestOptions::SYNCHRONOUS

verifiëren

Samenvatting

Beschrijft het verificatiegedrag van het SSL-certificaat bij een aanvraag.

  • Zet op true om SSL certificaatverificatie in te schakelen en de standaard CA bundel van het besturingssysteem.
  • Zet op false om certificaatverificatie uit te schakelen (dit is onveilig!).
  • Stel in op een tekenreeks om het pad naar een CA-bundel te geven om verificatie mogelijk te maken met behulp van een aangepast certificaat.
Soorten
  • bool
  • string
Standaard

true

Constant

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

Als u geen specifieke certificaatbundel nodig hebt, dan biedt Mozilla een veelgebruikte CA-bundel die kan worden gedownload hier (geleverd door de onderhouder van cURL). Zodra je een CA bundel beschikbaar hebt op schijf hebt, kan je de "openssl.cafile" PHP ini instelling laten verwijzen naar het pad naar het bestand, zodat u de "verify" verzoekoptie kunt weglaten. Veel meer details over SSL certificaten kan u vinden op de cURL website.

timeout

Samenvatting
Float die de totale time-out van het verzoek in seconden beschrijft. Gebruik 0 om oneindig te wachten (het standaard gedrag).
Soorten
float
Standaard
0
Constant
GuzzleHttpRequestOptions::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'

version

Samenvatting
Protocolversie die bij het verzoek moet worden gebruikt.
Soorten
string, float
Standaard
1.1
Constant
GuzzleHttpRequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);