Förfrågningsalternativ

Du kan anpassa begäranden som skapas och överförs av en klient med hjälp av begäranalternativ. Alternativ för begäran styr olika aspekter av en begäran inklusive rubriker, parametrar för frågesträngar, inställningar för timeout, kroppen av en begäran och mycket mer.

I alla följande exempel används följande klient:

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

allow_redirects

Sammanfattning

Beskriver hur en begäran omdirigeras

Typer
  • bool
  • array
Standard
[
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    "track_redirects" => false
]
Konstant

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Ange false för att inaktivera omdirigeringar.

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

Ställ in true (standardinställningen) för att aktivera normala omdirigeringar med ett maximalt antal på 5 omdirigeringar.

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

Du kan också skicka en associativ matris som innehåller följande nyckel- och värdepar:

  • max: (int, default=5) maximalt antal tillåtna omdirigeringar.

  • strikt: (bool, default=false) Ställ in true för att använda strikta omdirigeringar. Strikta RFC-kompatibla omdirigeringar innebär att POST-omdirigeringsförfrågningar skickas som POST-begäranden, istället för att göra det som de flesta webbläsare gör, nämligen att omdirigera POST-begäranden. med GET-förfrågningar.

  • referer: (bool, default=false) Ställ in till true för att möjliggöra tillägg av referer. när man omdirigerar.

  • protokoll: (array, default=['http', 'https']) Anger vilka protokoll som ska användas. tillåts för omdirigeringar.

  • on_redirect: (callable) PHP-callable som anropas när en omdirigering sker. stöter på. Den anropsbara funktionen anropas med den ursprungliga begäran och omdirigeringssvaret som mottogs. Alla returvärden från on_redirect funktionen ignoreras.

  • track_redirects: (bool) När den är inställd på true, kommer varje omdirigerad URI och status kod som uppträder kommer att spåras i X-Guzzle-Redirect-History och X-Guzzle-Redirect-Status-History. Alla URI:er och statuskoder kommer att lagras i den ordning som omdirigeringarna hittades.

    Observera: Vid spårning av omdirigeringar kommer X-Guzzle-Redirect-History att utesluta den ursprungliga begäranens URI och X-Guzzle-Redirect-Status-History kommer att utesluta den slutliga statuskoden.

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

Varning

Det här alternativet har bara effekt om din handläggare har funktionen GuzzleHttp\Middleware::redirect middleware. Denna middleware läggs till som standard när en klient skapas utan handläggare, och läggs till av standard när en handläggare skapas med GuzzleHttp\HandlerStack::create.

Obs

Det här alternativet har ingen effekt när du gör förfrågningar med GuzzleHttp\Client::sendRequest(). För att följa PSR-18 returneras alla omdirigeringssvar som de är.

auth

Sammanfattning

Överlämna en matris med HTTP-autentiseringsparametrar som ska användas med begäran. Matrisen måste innehålla användarnamnet i index 3078472929834293119510], lösenordet i index [0], lösenordet i index [1], och du kan eventuellt ange en inbyggd autentiseringstyp i index [2]. Överlämna null för att inaktivera autentisering för en begäran.

Typer
  • array
  • sträng
  • null
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::AUTH

De inbyggda autentiseringstyperna är följande:

grundläggande
Använd grundläggande HTTP-autentisering i Authorization (standardinställningen som används om ingen är anges).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
sammanfattning
Använd digest autentisering (måste stödjas av HTTP-hanteraren).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Obs

Detta stöds för närvarande endast när du använder cURL-hanteraren, men att skapa en ersättare som kan användas med alla HTTP-hanterare är planeras.

ntlm
Använd Microsoft NTLM-autentisering (måste stödjas av HTTP-hanteraren).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Obs

Detta stöds för närvarande endast när du använder cURL-hanteraren.

body

Sammanfattning

Alternativet body används för att styra kroppen för en enhet. som omsluter en begäran (t.ex. PUT, POST, PATCH).

Typer
  • string
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::BODY

Den här inställningen kan ställas in på någon av följande typer:

  • string

    // Du kan skicka begäranden som använder en sträng som meddelandekropp.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • resurs som returneras från fopen()

    // Du kan skicka förfrågningar som använder en strömresurs som kropp.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • Psr\Http\Message\StreamInterface

    // Du kan skicka förfrågningar som använder ett Guzzle-strömobjekt som kropp.
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream8798498498526573008982);
    

Obs

Det här alternativet kan inte användas med form_params, multipart eller json.

cert

Sammanfattning

Ställ in en sträng för att ange sökvägen till en fil som innehåller en PEM formaterat certifikat på klientsidan. Om ett lösenord krävs, sätts till en array som innehåller sökvägen till PEM-filen i det första arrayelementet. följt av det lösenord som krävs för certifikatet i det andra arrayelementet. element.

Typer
  • string
  • array
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::CERT

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

cookies

Sammanfattning
Anger om cookies används i en begäran eller inte eller vilken cookie som används i en burk ska användas eller vilka kakor som ska skickas.
Typer
GuzzleHttp\Cookie\CookieJarInterface
Standard
Ingen
Konstant
GuzzleHttp\RequestOptions::COOKIES

Du måste ange cookies-alternativet som ett GuzzleHttp\Cookie\CookieJarInterface eller false.

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

Varning

Det här alternativet har bara effekt om din handläggare har funktionen GuzzleHttp\Middleware::cookies middleware. Denna middleware läggs till som standard när en klient skapas utan handläggare, och läggs till av standard när en handläggare skapas med GuzzleHttp\default_handler.

Tips

När du skapar en klient kan du ställa in standardcookiealternativet till true för att använda en delad cookie-session som är associerad med klienten.

connect_timeout

Sammanfattning
Flottan som beskriver antalet sekunder som ska vänta på att ansluta. till en server. Använd 0 för att vänta på obestämd tid (standardbeteendet).
Typer
float
Standard
0
Konstant
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]);

Obs

Den här inställningen måste stödjas av den HTTP-hanterare som används för att skicka en begäran. connect_timeout stöds för närvarande endast av den inbyggda cURL hanterare.

debug

Sammanfattning

Ställ in true eller ställ in en PHP-ström som returneras av fopen() för att aktivera felsökningsutmatning med den handläggare som används för att skicka en begäran. Till exempel, När du använder cURL för att överföra förfrågningar kan cURL:s verbose-värde för CURLOPT_VERBOSE kommer att sändas ut. När du använder PHP:s stream wrapper kan stream wrapper meddelanden skickas ut. Om den är inställd på true skrivs utdata till PHP:s STDOUT. Om en PHP-ström tillhandahålls skrivs utdata till strömmen.

Typer
  • bool
  • fopen() resource
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::DEBUG

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

Om du kör exemplet ovan skulle du få ut något som liknar följande:

* 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

Sammanfattning

Ange om Content-Encoding svar (gzip, deflate etc.) avkodas automatiskt.

Typer
  • string
  • bool
Standard

true

Konstant

GuzzleHttp\RequestOptions::DECODE_CONTENT

Det här alternativet kan användas för att styra hur innehållskodade svarskroppar ska hanteras. Som standard är decode_content satt till true, vilket innebär att alla gzippade eller deflaterat svar kommer att avkodas av Guzzle.

När den är inställd på false avkodas aldrig svarskroppen, vilket innebär att bytena passerar genom handläggaren oförändrade.

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

När den är inställd på en sträng avkodas bytesna i ett svar och strängvärdet som tillhandahålls till alternativet decode_content skickas som Accept-Encoding. i huvudet på begäran.

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

delay

Sammanfattning

Antalet millisekunder som ska fördröjas innan begäran skickas.

Typer
  • heltal
  • float
Standard

null

Konstant

GuzzleHttp\RequestOptions::DELAY

expect

Sammanfattning

Kontrollerar beteendet hos rubriken "Förvänta dig: 100-Fortsätt".

Typer
  • bool
  • heltal
Standard

1048576

Konstant

GuzzleHttp\RequestOptions::EXPECT

Ställ in true för att aktivera "Expect: 100-Continue"-huvudet för alla begäranden. som skickar en kropp. Ange false för att inaktivera "Expect: 100-Continue". för alla förfrågningar. Ställs in till ett tal så att storleken på nyttolasten måste vara större än siffran för att skicka Expect-huvudet. Om du ställer in ett nummer kommer att skicka Expect-huvudet för alla begäranden där storleken på inte kan bestämmas eller där kroppen inte kan spolas tillbaka.

Som standard lägger Guzzle till "Expect: 100-Continue"-huvudet när storleken på kroppen av en begäran är större än 1 MB och en begäran använder HTTP/1.1.

Obs

Det här alternativet gäller bara när HTTP/1.1 används. De inställningar som gäller för HTTP/1.0 och HTTP/2.0-protokollen har inte stöd för rubriken "Expect: 100-Continue". Stöd för hantering av arbetsflödet "Expect: 100-Continue" måste finnas. implementeras av Guzzle HTTP-hanterare som används av en klient.

force_ip_resolve

Sammanfattning
Ange "v4" om du vill att HTTP-hanterarna endast ska använda ipv4-protokollet eller "v6" för ipv6-protokollet.
Typer
sträng
Standard
noll
Konstant
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']);

Obs

Den här inställningen måste stödjas av den HTTP-hanterare som används för att skicka en begäran. force_ip_resolve stöds för närvarande endast av den inbyggda cURL och stream-hanterare.

form_params

Sammanfattning
Används för att skicka en application/x-www-form-urlencoded POST-förfrågan.
Typer
matris
Konstant
GuzzleHttp\RequestOptions::FORM_PARAMS

Associativ matris av namn på formulärfält till värden där varje värde är en sträng eller en array av strängar. Ställer in Content-Type-huvudet till application/x-www-form-urlencoded när ingen Content-Type-huvudet redan är redan finns.

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

Obs

form_params kan inte användas med alternativet multipart. Du måste använda det ena eller det andra. Använd form_params för application/x-www-form-urlencoded. och multipart för multipart/form-data.

Det här alternativet kan inte användas med body, multipart eller json.

rubriker

Sammanfattning
Associativ matris med rubriker som ska läggas till i begäran. Varje nyckel är namn på en rubrik och varje värde är en sträng eller en array av strängar. som representerar värdena för huvudfältet.
Typer
matris
Standardvärden
Ingen
Konstant
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']
    ]
]);

Huvudet kan läggas till som standardalternativ när du skapar en klient. När rubriker används som standardalternativ tillämpas de endast om den begäran som skapas inte redan innehåller den specifika rubriken. Detta inkluderar både begäranden som skickas till klienten i metoderna send() och sendAsync(), och förfrågningar som skapas av klienten (t.ex. request() och 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

Sammanfattning
Ange false för att inaktivera undantag för ett HTTP-protokoll. fel (dvs. 4xx- och 5xx-svar). Undantag skapas som standard när HTTP-protokollfel uppstår.
Typer
bool
Standard
true
Konstant
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

Varning

Det här alternativet har bara effekt om din handläggare har funktionen GuzzleHttp\Middleware::httpErrors middleware. Denna middleware läggs till som standard när en klient skapas utan handläggare, och läggs till av standard när en handläggare skapas med GuzzleHttp\default_handler.

idn_conversion

Sammanfattning

Stöd för IDN (Internationalized Domain Name) (aktiverat som standard om intl är tillgängligt).

Typer
  • bool
  • int
Standard

true om intl tillägget är tillgängligt (och ICU-biblioteket är 4.6+ för PHP 7.2+), false annars

Konstant

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

Aktiverar/avaktiverar IDN-stöd, kan också användas för exakt kontroll genom att kombinera IDNA_*-konstanter (utom IDNA_ERROR_*), se $options parametern i idn_to_ascii() för mer information.

json

Sammanfattning
Alternativet json används för att enkelt ladda upp JSON-kodade data som kroppen av en begäran. En Content-Type-huvudrubrik med application/json kommer att vara läggas till om inget Content-Type-huvud redan finns i meddelandet.
Typer
Alla PHP-typer som kan bearbetas av PHP:s json_encode() funktion.
Standard
Ingen
Konstant
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Här är ett exempel på hur man använder tap middleware för att se vilken förfrågan som skickas över kabeln.

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

Obs

Det här begäranalternativet stöder inte anpassning av Content-Type-huvudet. eller något av alternativen från PHP:s json_encode() funktion. Om du behöver anpassa dessa inställningar måste du skicka över JSON-kodade data i begäran själv med hjälp av body begäran. och du måste ange rätt Content-Type-huvud med hjälp av alternativet headers.

Det här alternativet kan inte användas med body, form_params eller multipart.

multipart

Sammanfattning
Ställer in begärandets kropp till ett multipart/form-data-formulär.
Typer
matris
Konstant
GuzzleHttp\RequestOptions::MULTIPART

Värdet för multipart är en matris av associativa matriser som var och en innehåller följande nyckel- och värdepar:

  • name: (sträng, obligatoriskt) namnet på formulärfältet
  • innehåll: (StreamInterface/resource/string, obligatoriskt) De data som ska användas i formulärelementet.
  • headers: (array) Valfri associerande array av anpassade rubriker som ska användas med formulärelementet.
  • filnamn: (sträng) Valfri sträng som ska skickas som filnamn i delen.
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'
        ],
    ]
]);

Obs

multipart kan inte användas med alternativet form_params. Du måste använda det ena eller det andra. Använd form_params för application/x-www-form-urlencoded. och multipart för multipart/form-data.

Det här alternativet kan inte användas med body, form_params eller json.

on_headers

Sammanfattning

En callable som anropas när HTTP-huvudena i svaret har har mottagits men inte har börjat laddas ner ännu.

Typer
  • callable
Konstant

GuzzleHttp\RequestOptions::ON_HEADERS

Den anropbara funktionen accepterar ett Psr\Http\Message\ResponseInterface objekt. Om ett undantag avbryts av den anropsbara funktionen, kommer det löfte som är associerat med svaret att avvisas med ett GuzzleHttp\Exception\RequestException som omsluter som omsluter undantaget som kastades.

Du kan behöva veta vilka rubriker och statuskoder som togs emot innan data kan skrivas till diskbänken.

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

Obs

När du skriver HTTP-hanterare måste funktionen on_headers anropas. innan data skrivs till svarskroppen.

on_stats

Sammanfattning

on_stats ger dig tillgång till överföringsstatistik för en begäran och få tillgång till överföringsdetaljer på lägre nivå för handläggaren. som är associerad med din klient. on_stats är en anropsbar funktion som anropas när en handläggare har avslutat sändningen av en begäran. Återkallelsen anropas med överföringsstatistik om begäran, det mottagna svaret eller den fel som uppstått. I uppgifterna ingår den totala tiden som tog för att skicka begäran.

Typer
  • callable
Konstant

GuzzleHttp\RequestOptions::ON_STATS

Den anropbara funktionen accepterar ett GuzzleHttp\TransferStats objekt.

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

Sammanfattning

Definierar en funktion som ska anropas när överföringen fortskrider.

Typer
  • callable
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::PROGRESS

Funktionen accepterar följande positionella argument:

  • Det totala antalet bytes som förväntas hämtas, noll om det är okänt.
  • antalet nedladdade bytes hittills
  • Det totala antalet bytes som förväntas laddas upp.
  • antalet bytes som laddats upp hittills
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Sammanfattning

Överlämna en sträng för att ange en HTTP-proxy, eller en array för att ange en för att ange olika proxys för olika protokoll.

Typer
  • string
  • array
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::PROXY

Överlämna en sträng för att ange en proxy för alla protokoll.

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

Överlämna en associativ array för att ange HTTP-proxies för specifika URI-scheman. (dvs. "http", "https"). Lämna ett no nyckel- och värdepar för att tillhandahålla en lista över värdnamn som inte ska proxysändas till.

Obs

Guzzle fyller automatiskt i detta värde med din miljös NO_PROXY miljövariabel. Men när du tillhandahåller en proxy är det upp till dig att ange no-värdet som parsas från miljövariabeln NO_PROXY. (t.ex. 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
    ]
]);

Obs

Du kan ange proxy-URL:er som innehåller ett schema, användarnamn och lösenord. Till exempel "http://username:[email protected]:10".

query

Sammanfattning

Associativ matris med värden för frågetecken eller frågetecken som ska läggas till begäran.

Typer
  • array
  • sträng
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::QUERY

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

Förfrågningssträngar som anges i alternativet query kommer att skriva över alla värden för förfrågningssträngar som anges i URI:n för en begäran.

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

read_timeout

Sammanfattning
Float som beskriver den timeout som ska användas vid läsning av en strömmad kropp.
Typer
float
Standard
Standardvärdet är värdet för default_socket_timeout PHP-ini-inställningen.
Konstant
GuzzleHttp\RequestOptions::READ_TIMEOUT

Tidsgränsen gäller för enskilda läshändelser på en strömmad kropp (när alternativet stream är aktiverat).

$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

Sammanfattning

Ange var kroppen av ett svar ska sparas.

Typer
  • string (sökväg till fil på disk)
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Standard

PHP temp stream

Konstant

GuzzleHttp\RequestOptions::SINK

Överlämna en sträng för att ange sökvägen till en fil som ska lagra innehållet i svarskroppen:

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

Skicka en resurs som returneras från fopen() för att skriva svaret till en PHP-ström:

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

Överlämna ett Psr\Http\Message\StreamInterface objekt för att strömma svarskroppen till en öppen PSR-7-ström.

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

Obs

Förfrågningsalternativet save_to har avvecklats till förmån för alternativet sink. Att tillhandahålla alternativet save_to är nu ett alias av sink.

ssl_key

Sammanfattning

Ange sökvägen till en fil som innehåller en privat SSL-nyckel i PEM format. Om ett lösenord krävs, sätts det till en array som innehåller sökvägen. till SSL-nyckeln i det första arrayelementet följt av det lösenord som krävs. för certifikatet i det andra elementet.

Typer
  • string
  • array
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::SSL_KEY

Obs

ssl_key implementeras av HTTP-hanterare. Detta är för närvarande endast cURL-hanteraren, men kan komma att stödjas av andra tredjepartshanterare. handläggare.

stream

Sammanfattning
Ställ in true för att strömma ett svar i stället för att ladda ner det i sin helhet. i förväg.
Typer
bool
Standard
false
Konstant
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);
}

Obs

Stöd för strömsvar måste implementeras av den HTTP-hanterare som används av en klient. Det här alternativet kanske inte stöds av alla HTTP-hanterare, men svarsobjektets gränssnitt förblir detsamma oberoende av om om det stöds av handläggaren eller inte.

synchronous

Sammanfattning
Ställ in till true för att informera HTTP-hanterare om att du har för avsikt att vänta på svaret. Detta kan vara användbart vid optimeringar.
Typer
bool
Standard
ingen
Konstant
GuzzleHttp\RequestOptions::SYNCHRONOUS

verifiera

Sammanfattning

Beskriver hur SSL-certifikatet verifieras för en begäran.

  • Ställ in true för att aktivera SSL-certifikatverifiering och använda standardvärdet CA-paketet som tillhandahålls av operativsystemet.
  • Ställ in false för att inaktivera certifikatverifiering (detta är osäkert!).
  • Ställ in en sträng för att ange sökvägen till ett CA-paket för att aktivera verifiering. med hjälp av ett eget certifikat.
Typer
  • bool
  • string
Standard

true

Konstant

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

Om du inte behöver ett specifikt certifikatpaket tillhandahåller Mozilla en vanligt förekommande CA-paket som kan laddas ner. här (tillhandahålls av den som underhåller cURL). När du har ett CA-paket tillgängligt på kan du ställa in inställningen "openssl.cafile" i PHP ini så att den pekar på sökvägen till filen, vilket gör att du kan utelämna alternativet "verify" för begäran. Mycket mer detaljer om SSL-certifikat finns på webbplatsen cURL-webbplats.

timeout

Sammanfattning
Flottan som beskriver den totala timeouttiden för begäran i sekunder. Använd 0 för att vänta på obestämd tid (standardbeteendet).
Typer
float
Standard
0
Konstant
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'

version

Sammanfattning
Protokollversion som ska användas för begäran.
Typer
sträng, float
Standard
1.1
Konstant
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);