Anmodningsmuligheder

Du kan tilpasse anmodninger, der oprettes og overføres af en klient, ved hjælp af request options. Anmodningsindstillinger styrer forskellige aspekter af en anmodning herunder overskrifter, forespørgselsstrengparametre, timeout-indstillinger, kroppen af en anmodning og meget mere.

Alle de følgende eksempler bruger følgende klient:

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

allow_redirects

Resumé

Beskriver omdirigeringsadfærden for en anmodning

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

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Sæt til false for at deaktivere omdirigeringer.

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

Sæt til true (standardindstillingen) for at aktivere normale omdirigeringer med et maksimalt antal på 5 omdirigeringer.

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

Du kan også sende et associerende array, der indeholder følgende nøgle-værdipar:

  • max: (int, default=5) maksimalt antal tilladte omdirigeringer.

  • strict: (bool, default=false) Sæt til true for at bruge strenge omdirigeringer. Strenge RFC-kompatible omdirigeringer betyder, at POST-omdirigeringsanmodninger sendes som POST-forespørgsler i stedet for at gøre det, som de fleste browsere gør, hvilket er at omdirigere POST-forespørgsler med GET-forespørgsler.

  • referer: (bool, default=false) Sættes til true for at aktivere tilføjelse af refereren header ved viderestilling.

  • protokoller: (array, default=['http', 'https']) Angiver, hvilke protokoller der er tilladte til omdirigeringsanmodninger.

  • on_redirect: (callable) PHP-callable, der kaldes, når en redirect er mødt. Callable'en kaldes med den oprindelige anmodning og redirect-svar, der blev modtaget. Enhver returværdi fra on_redirect funktion ignoreres.

  • track_redirects: (bool) Når den er sat til true, vil hver omdirigeret URI og status kode vil blive sporet i X-Guzzle-Redirect-History og X-Guzzle-Redirect-Status-History hhv. headere. Alle URI'er og statuskoder vil blive gemt i den rækkefølge, som omdirigeringen blev fundet.

    Bemærk: Ved sporing af omdirigeringer vil X-Guzzle-Redirect-History headeren udelukke den oprindelige anmodnings URI og X-Guzzle-Redirect-Status-History headeren vil udelukke den endelige statuskode.

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

Advarsel

Denne indstilling har kun en effekt, hvis din handler har GuzzleHttp\Middleware::redirect middleware. Denne middleware tilføjes som standard, når en klient oprettes uden en handler, og tilføjes af standard, når der oprettes en handler med GuzzleHttp\HandlerStack::create.

Bemærk

Denne indstilling har ingen effekt, når du laver anmodninger ved hjælp af GuzzleHttp\Client::sendRequest(). For at overholde PSR-18 returneres ethvert redirect-svar som det er.

auth

Resumé

Overfør et array af HTTP-godkendelsesparametre, der skal bruges sammen med anmodning. Arrayet skal indeholde brugernavnet i indeks 30784729298342931195108108798498549852626573008982, adgangskoden i indeks 307847292983429311951111879849858526573008982, og du kan eventuelt angive en indbygget godkendelsestype i index [2]. Overgiv null for at deaktivere autentificering for en anmodning.

Typer
  • array
  • string
  • null
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::AUTH

De indbyggede godkendelsestyper er som følger:

grundlæggende
Brug grundlæggende HTTP-godkendelse i Authorization headeren (standardindstillingen anvendes, hvis ingen er angivet).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
oversigt
Brug digest-autentificering (skal understøttes af HTTP-handleren).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Bemærk

Dette er i øjeblikket kun understøttet, når du bruger cURL-handleren, men at skabe en erstatning, der kan bruges med enhver HTTP-handler, er er planlagt.

ntlm
Brug Microsoft NTLM-godkendelse (skal understøttes af HTTP-handleren).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Bemærk

Dette er i øjeblikket kun understøttet, når du bruger cURL-handleren.

body

Resumé

Indstillingen body bruges til at styre kroppen af en enhed omsluttende anmodning (f.eks. PUT, POST, PATCH).

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

Ingen

Konstant

GuzzleHttp\RequestOptions::BODY

Denne indstilling kan indstilles til en af følgende typer:

  • string

    // Du kan sende forespørgsler, der bruger en streng som meddelelsestekst.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • ressource returneret fra fopen()

    // Du kan sende anmodninger, der bruger en streamressource som krop.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource8798498498526573008982);
    
  • Psr\Http\Message\StreamInterface

    // Du kan sende anmodninger, der bruger et Guzzle-streamobjekt som krop
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream8stream798498498526573008982);
    

Bemærk

Denne indstilling kan ikke bruges med form_params, multipart, eller json.

cert

Resumé

Sættes til en streng for at angive stien til en fil, der indeholder en PEM formateret klientsidecertifikat. Hvis der kræves en adgangskode, skal den sættes til et array, der indeholder stien til PEM-filen i det første array-element efterfulgt af den adgangskode, der kræves til certifikatet, i det andet arrayelement element.

Typer
  • string
  • array
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::CERT

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

cookies

Resumé
Angiver, om der anvendes cookies i en anmodning, eller hvilken cookie krukke skal bruges, eller hvilke cookies der skal sendes.
Typer
GuzzleHttp\Cookie\CookieJarInterface
Standard
Ingen
Konstant
GuzzleHttp\RequestOptions::COOKIES

Du skal angive cookies-indstillingen som en GuzzleHttp\Cookie\CookieJarInterface eller false.

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

Advarsel

Denne indstilling har kun en effekt, hvis din handler har GuzzleHttp\Middleware::cookies middleware. Denne middleware tilføjes som standard, når en klient oprettes uden en handler, og tilføjes af standard, når der oprettes en handler med >GuzzleHttp\default_handler.

Tip

Når du opretter en klient, kan du indstille standardcookieindstillingen til true for at bruge en delt cookiesession, der er tilknyttet klienten.

connect_timeout

Resumé
Float, der beskriver det antal sekunder, der skal ventes, mens der forsøges at oprette forbindelse til en server. Brug 0 for at vente på ubestemt tid (standardadfærd).
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]);

Bemærk

Denne indstilling skal understøttes af den HTTP-handler, der bruges til at sende en anmodning. connect_timeout er i øjeblikket kun understøttet af den indbyggede cURL håndtering.

debug

Resumé

Sæt til true eller sæt til en PHP-stream, der returneres af fopen() til aktivere debug output med den handler, der bruges til at sende en anmodning. For eksempel, ved brug af cURL til at overføre anmodninger, kan cURL's verbose af CURLOPT_VERBOSE vil blive udsendt. Når du bruger PHP stream wrapper, skal stream wrapper notifikationer udsendes. Hvis den er indstillet til true, skrives output til PHP's STDOUT. Hvis der er angivet en PHP-stream, skrives output til streamet.

Typer
  • bool
  • fopen() resource
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::DEBUG

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

Hvis du kører ovenstående eksempel, vil du få noget, der ligner følgende:

* 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

Resumé

Angiv, om Content-Encoding svar (gzip, deflate, osv.) automatisk afkodes.

Typer
  • string
  • bool
Standard

true

Konstant

GuzzleHttp\RequestOptions::DECODE_CONTENT

Denne indstilling kan bruges til at styre, hvordan indholdskodede svarlegemer håndteres. Som standard er decode_content sat til true, hvilket betyder, at enhver gzippet eller deflateret svar vil blive afkodet af Guzzle.

Når den er indstillet til false, bliver kroppen af et svar aldrig afkodet, hvilket betyder, at bytesne passerer gennem handleren uændret.

// 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 er indstillet til en streng, afkodes bytes i et svar, og strengværdien der er givet til decode_content indstillingen overføres som Accept-Encoding headeren i anmodningen.

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

delay

Resumé

Antallet af millisekunder, der skal forsinkes, før anmodningen sendes.

Typer
  • heltal
  • float
Standard

null

Konstant

GuzzleHttp\RequestOptions::DELAY

expect

Resumé

Styrer opførslen af overskriften "Expect: 100-Continue".

Typer
  • bool
  • heltal
Standard

1048576

Konstant

GuzzleHttp\RequestOptions::EXPECT

Sæt til true for at aktivere overskriften "Expect: 100-Continue" for alle anmodninger der sender en krop. Sæt til false for at deaktivere "Expect: 100-Continue"-headeren. header for alle anmodninger. Indstilles til et tal, så størrelsen af payload skal være større end tallet for at sende Expect-headeren. Indstilling til et tal sender Expect-headeren for alle anmodninger, hvor størrelsen af nyttelast ikke kan bestemmes, eller hvor kroppen ikke kan spoles tilbage.

Som standard tilføjer Guzzle headeren "Expect: 100-Continue", når størrelsen af en anmodnings krop er større end 1 MB, og en anmodning anvender HTTP/1.1.

Bemærk

Denne indstilling har kun virkning, når du bruger HTTP/1.1. HTTP/1.0 og HTTP/2.0-protokollerne understøtter ikke overskriften "Expect: 100-Continue". Understøttelse af håndtering af "Expect: 100-Continue"-arbejdsgangen skal være implementeres af Guzzle HTTP-handlere, der anvendes af en klient.

force_ip_resolve

Resumé
Indstil til "v4", hvis du ønsker, at HTTP-handlerne kun skal bruge ipv4-protokollen, eller "v6" for ipv6-protokollen.
Typer
streng
Standard
null
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']);

Bemærk

Denne indstilling skal understøttes af den HTTP-håndtering, der bruges til at sende en anmodning. force_ip_resolve er i øjeblikket kun understøttet af den indbyggede cURL og stream handlers.

form_params

Resumé
Bruges til at sende en application/x-www-form-urlencoded POST-anmodning.
Typer
array
Konstant
GuzzleHttp\RequestOptions::FORM_PARAMS

Associerende array af formularfeltnavne til værdier, hvor hver værdi er en streng eller array af strenge. Sætter Content-Type-hovedet til application/x-www-w-form-urlencoded, når der ikke allerede er en Content-Type-headeren til stede.

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

Bemærk

form_params kan ikke bruges med multipart indstillingen. Du skal bruge den ene eller den anden. Brug form_params til application/x-www-w-form-urlencoded anmodninger og multipart for multipart/form-data anmodninger.

Denne indstilling kan ikke bruges med body, multipart, eller json

headers

Resumé
Associerende array af headere, der skal tilføjes til anmodningen. Hver nøgle er den navnet på en overskrift, og hver værdi er en streng eller et array af strenge der repræsenterer værdierne for overskriftsfeltet.
Typer
array
Standardindstillinger
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']
    ]
]);

Overskrifter kan tilføjes som standardindstillinger, når du opretter en klient. Når overskrifter anvendes som standardindstillinger, anvendes de kun, hvis den anmodning, der oprettes, er ikke allerede indeholder den specifikke overskrift. Dette omfatter både anmodninger, der overføres til klienten i send() og sendAsync() metoderne, og anmodninger oprettet af klienten (f.eks. request() og 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

Resumé
Sæt til false for at deaktivere at kaste undtagelser på en HTTP-protokol fejl (dvs. 4xx- og 5xx-svar). Undtagelser kastes som standard, når der opstår HTTP-protokolfejl.
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

Advarsel

Denne indstilling har kun en effekt, hvis din handler har GuzzleHttp\Middleware::httpErrors middleware. Denne middleware tilføjes som standard, når en klient oprettes uden nogen handler, og tilføjes af standard, når der oprettes en handler med GuzzleHttp\default_handler.

idn_conversion

Resumé

Understøttelse af IDN (Internationalized Domain Name) (aktiveret som standard, hvis intl extension er tilgængelig).

Typer
  • bool
  • int
Standard

true hvis intl udvidelsen er tilgængelig (og ICU-biblioteket er 4.6+ for PHP 7.2+), false ellers

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

Aktiverer/deaktiverer IDN-understøttelse, kan også bruges til præcis kontrol ved at kombinere IDNA_*-konstanter (undtagen IDNA_ERROR_*), se $options parameteren i idn_to_ascii() dokumentation for flere oplysninger.

json

Resumé
Indstillingen json bruges til nemt at uploade JSON-kodede data som kroppen af en anmodning. En Content-Type-header på application/json vil blive tilføjes, hvis der ikke allerede er en Content-Type-hoveddetektor i meddelelsen.
Typer
Enhver PHP-type, der kan behandles af PHP's json_encode() funktion.
Standard
Ingen
Konstant
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Her er et eksempel på at bruge tap middleware til at se, hvilken forespørgsel der sendes over kablet.

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

Bemærk

Denne anmodningsindstilling understøtter ikke tilpasning af Content-Type-headeren eller nogen af indstillingerne fra PHP's json_encode() funktion. Hvis du har brug for at tilpasse disse indstillinger, skal du overdrage funktionen JSON-kodede data selv ind i anmodningen ved hjælp af body request indstillingen, og du skal angive den korrekte Content-Type-header ved hjælp af indstillingen headers request option.

Denne indstilling kan ikke bruges med body, form_params, eller multipart

multipart

Resumé
Indstiller anmodningens krop til en multipart/form-data formular.
Typer
array
Konstant
GuzzleHttp\RequestOptions::MULTIPART

Værdien af multipart er et array af associative arrays, som hver indeholder følgende nøgle-værdipar:

  • name: (streng, påkrævet) navnet på formularfeltet
  • indhold: (StreamInterface/resource/string, påkrævet) De data, der skal bruges i formularelementet.
  • headers: (array) Valgfrit associerende array af brugerdefinerede overskrifter til brug med formularelementet.
  • filnavn: (string) Valgfri streng, der skal sendes som filnavn 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'
        ],
    ]
]);

Bemærk

multipart kan ikke bruges med indstillingen form_params. Du skal bruge den ene eller den anden. Brug form_params til application/x-www-w-form-urlencoded anmodninger og multipart for multipart/form-data anmodninger.

Denne indstilling kan ikke bruges med body, form_params, eller json

on_headers

Resumé

En callable, der kaldes, når HTTP-headerne i svaret har er modtaget, men at download af kroppen endnu ikke er begyndt at blive downloadet.

Typer
  • callable
Konstant

GuzzleHttp\RequestOptions::ON_HEADERS

Callable accepterer et Psr\Http\Message\ResponseInterface objekt. Hvis en undtagelse afkaldes af callable'en, vil det løfte, der er knyttet til svaret, blive afvises med et GuzzleHttp\Exception\RequestException, der omslutter undtagelse, der blev kastet.

Du kan have brug for at vide, hvilke headere og statuskoder der blev modtaget, før data kan skrives til sink'en.

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

Bemærk

Når du skriver HTTP-handlere, skal funktionen on_headers påkaldes før der skrives data til svarets krop.

on_stats

Resumé

on_stats giver dig mulighed for at få adgang til overførselsstatistikker for en anmodning og få adgang til de lavere overførselsdetaljer på lavere niveau i handleren der er knyttet til din klient. on_stats er en callable, der påberåbes når en handler er færdig med at sende en anmodning. Callbacken kaldes på med overførselsstatistik om anmodningen, det modtagne svar eller den fejl, der er opstået. I dataene indgår den samlede tid, der er gået for at sende anmodningen.

Typer
  • callable
Konstant

GuzzleHttp\RequestOptions::ON_STATS

Callable accepterer et 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

Resumé

Definerer en funktion, der skal påberåbes, når der sker fremskridt i overførslen.

Typer
  • callable
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::PROGRESS

Funktionen accepterer følgende positionelle argumenter:

  • det samlede antal bytes, der forventes at blive downloadet, nul, hvis ukendt
  • antallet af bytes, der er downloadet indtil videre
  • det samlede antal bytes, der forventes at blive uploadet
  • antallet af bytes, der er uploadet indtil videre
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Resumé

Overfør en streng for at angive en HTTP-proxy, eller et array for at angive for at angive forskellige proxyer for forskellige protokoller.

Typer
  • string
  • array
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::PROXY

Overfør en streng for at angive en proxy for alle protokoller.

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

Overfør et associerende array for at angive HTTP-proxyer for specifikke URI-ordninger (f.eks. "http", "https"). Angiv et no nøgle-værdipar for at give en liste over værtsnavne, der ikke skal proxies til.

Bemærk

Guzzle vil automatisk udfylde denne værdi med dit miljøs NO_PROXY miljøvariabel. Men når du angiver en proxy forespørgselsindstilling, er det op til dig at angive no værdien parsed fra miljøvariablen NO_PROXY (f.eks. 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
    ]
]);

Bemærk

Du kan angive proxy-URL'er, der indeholder et skema, et brugernavn og en adgangskode. For eksempel "http://username:[email protected]:10".

query

Resumé

Associerende array af forespørgselsstrengværdier eller forespørgselsstreng, der skal tilføjes til anmodningen.

Typer
  • array
  • string
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::QUERY

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

Forespørgselsstrenge, der er angivet i query, vil overskrive alle værdier for forespørgselsstrenge, der er angivet i URI'en i en anmodning.

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

read_timeout

Resumé
Float, der beskriver den timeout, der skal anvendes ved læsning af en streamed body
Typer
float
Standard
Standardværdien er værdien af default_socket_timeout PHP ini indstilling
Konstant
GuzzleHttp\RequestOptions::READ_TIMEOUT

Timeoutet gælder for individuelle læseoperationer på et streamet organ (når indstillingen stream er aktiveret).

$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

Resumé

Angiv, hvor kroppen af et svar skal gemmes.

Typer
  • string (sti til fil på disk)
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Standard

PHP temp stream

Konstant

GuzzleHttp\RequestOptions::SINK

Overfør en streng for at angive stien til en fil, der skal gemme indholdet af svarteksten:

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

Overfør en ressource, der er returneret fra fopen() for at skrive svaret til en PHP-stream:

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

Overfør et Psr\Http\Message\StreamInterface objekt til at streame svarteksten til en åben PSR-7-stream.

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

Bemærk

Anmodningsindstillingen save_to er blevet forældet til fordel for indstillingen sink request option. Indstillingen save_to er nu et alias af sink.

ssl_key

Resumé

Angiv stien til en fil, der indeholder en privat SSL-nøgle i PEM format. Hvis der kræves en adgangskode, skal den angives til et array, der indeholder stien til SSL-nøglen i det første array-element efterfulgt af den krævede adgangskode for certifikatet i det andet element.

Typer
  • string
  • array
Standard

Ingen

Konstant

GuzzleHttp\RequestOptions::SSL_KEY

Bemærk

ssl_key er implementeret af HTTP-handlere. Dette er i øjeblikket kun understøttet af cURL-handleren, men kan muligvis understøttes af andre tredjeparts handlers.

stream

Resumé
Sæt til true for at streame et svar i stedet for at downloade det hele på forhånd.
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);
}

Bemærk

Understøttelse af streamsvar skal implementeres af den HTTP-handler, der anvendes af en klient. Denne indstilling er muligvis ikke understøttet af alle HTTP-håndterer, men den grænseflade for svarobjektet forbliver den samme, uanset om den understøttes af håndteringsenheden.

synkron

Resumé
Sæt til true for at informere HTTP-handlerne om, at du har til hensigt at vente på den svar. Dette kan være nyttigt i forbindelse med optimeringer.
Typer
bool
Standard
ingen
Konstant
GuzzleHttp\RequestOptions::SYNCHRONOUS

verify

Resumé

Beskriver SSL-certifikatverificeringsadfærd for en anmodning.

  • Sæt til true for at aktivere SSL-certifikatverifikation og bruge standard CA-pakke, der leveres af operativsystemet.
  • Sæt til false for at deaktivere certifikatverifikation (dette er usikkert!).
  • Sæt til en streng for at angive stien til et CA-bundle for at aktivere verifikation ved hjælp af et brugerdefineret 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]);

Hvis du ikke har brug for et specifikt certifikatpakke, tilbyder Mozilla en almindeligt anvendte CA-pakke, som kan downloades her (leveret af vedligeholderen af cURL). Når du har et CA-pakke til rådighed på disk, kan du sætte PHP ini indstillingen "openssl.cafile" til at pege på stien til filen, så du kan udelade "verify"-forespørgselsindstillingen. Meget mere detaljeret om SSL-certifikater kan findes på webstedet cURL-websted.

timeout

Resumé
Float, der beskriver den samlede timeout for anmodningen i sekunder. Brug 0 for at vente på ubestemt tid (standardadfærd).
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

Resumé
Protokolversion, der skal anvendes i forbindelse med anmodningen.
Typer
string, float
Standard
1.1
Konstant
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);