Taotluse valikud

Kliendi poolt loodud ja edastatud taotlusi saab kohandada, kasutades selleks request options. Taotluse valikud kontrollivad taotluse erinevaid aspekte sealhulgas päiseid, päringustringi parameetreid, aeglustuse seadistusi, päringu keha ja päringu sisu ja palju muud.

Kõik järgmised näited kasutavad järgmist klienti:

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

allow_redirects

Kokkuvõte

Kirjeldab taotluse ümbersuunamise käitumist

Tüübid
  • bool
  • array
Vaikimisi
[
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    'track_redirects' => false
]
Pidev

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Määrake false, et keelata ümbersuunamised.

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

Määra true (vaikimisi seade), et lubada tavalisi ümbersuunamisi, mille maksimaalne arv on 5 ümbersuunamist.

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

Võite edastada ka assotsiatiivse massiivi, mis sisaldab järgmisi võtmeväärtuspaare:

  • max: (int, vaikimisi=5) maksimaalne lubatud ümbersuunamiste arv.

  • range: (bool, vaikimisi=false) Seadistada true, et kasutada range ümbersuunamisi. Ranged RFC nõuetele vastavad ümbersuunamised tähendavad, et POST ümbersuunamispäringud saadetakse kui POST päringutena vs. seda, mida enamik brausereid teeb, mis on POST päringute ümbersuunamine. GET-päringutega.

  • referer: (bool, vaikimisi=false) Seadistada true, et võimaldada Refereri lisamist. päise lisamist ümbersuunamisel.

  • protokollid: (array, default=['http', 'https']) Määratud, millised protokollid on on lubatud ümbersuunamise taotluste puhul

  • on_redirect: (callable) PHP callable, mis kutsutakse esile, kui toimub ümbersuunamine. tekib. Callable'i kutsutakse koos esialgse taotlusega ja redirect vastus, mis saadi. Iga on_redirect'i tagastusväärtus funktsiooni tagasisidet ei võeta arvesse.

  • track_redirects: (bool) Kui see on seatud true, siis iga ümber suunatud URI ja status kood jälgitakse X-Guzzle-Redirect-History jaX-Guzzle-Redirect-History. X-Guzzle-Redirect-Status-History vastavalt. Kõik URI-d ja olekukoodid salvestatakse järjekorras, milles ümbersuunamised toimusid.

    Märkus: Ümbersuunamiste jälgimisel X-Guzzle-Redirect-History päise X-Guzzle-Redirect-History kasutatakse välja esialgse taotluse URI ja X-Guzzle-Redirect-Status-History päis välistab lõpliku staatuskoodi.

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

Hoiatus

See valik mõjutab ainult siis, kui teie käitlejal on käsurea GuzzleHttp\Middleware::redirect middleware. See middleware lisatakse vaikimisi, kui klient luuakse ilma käitlejata, ja see lisatakse vaikimisi, kui luuakse käsitseja GuzzleHttp\HandlerStack::create abil.

Märkus

Sellel valikul ei ole mingit mõju, kui kasutate GuzzleHttp\Client::sendRequest() päringute tegemisel. Selleks, et jääda PSR-18 nõuetele vastavaks, tagastatakse mis tahes ümbersuunamise vastus sellisena, nagu see on.

auth

Kokkuvõte

Andke üle HTTP autentimisparameetrite massiivi, mida kasutatakse koos funktsiooni taotlusega. Massiiv peab sisaldama kasutajanime indeksis [0], salasõna indeksis indeksis [1], ja valikuliselt võib anda sisseehitatud autentimistüübi sisse index [2]. Andke null, et keelata päringu autentimine.

Tüübid
  • array
  • string
  • null
Vaikimisi

Ei ole

Pidev

GuzzleHttp\RequestOptions::AUTH

Sisseehitatud autentimistüübid on järgmised:

põhilised
Kasutage põhilist HTTP autentimist Authorization päises (vaikimisi seade, mida kasutatakse, kui puudub määratud).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digesti
Kasutage digesti autentimist (peab olema HTTP-käsitleja poolt toetatud).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Märkus

See on praegu toetatud ainult cURL-käsitleja kasutamisel, kuid asendaja loomine, mida saab kasutada mis tahes HTTP-käsitlejaga, on plaanis.

ntlm
Kasutage Microsoft NTLM autentimine (peab olema HTTP-käsitleja poolt toetatud).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Märkus

See on praegu toetatud ainult cURL-käsitleja kasutamisel.

body

Kokkuvõte

Valikut body kasutatakse olemuse keha kontrollimiseks. ümbritseva päringu (nt PUT, POST, PATCH)

Tüübid
  • string
  • fopen() ressurss
  • Psr\Http\Message\StreamInterface
Vaikimisi

Ei ole

Pidev

GuzzleHttp\RequestOptions::BODY

Selle seadistuse saab määrata mis tahes järgmistele tüüpidele:

  • string

    // Saate saata päringuid, mis kasutavad teate kehana stringi.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • ressurss, mis tagastatakse fopen()

    // Saate saata päringuid, mis kasutavad voogressurssi kehana.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • Psr\Http\Message\StreamInterface

    // Saate saata päringuid, mis kasutavad kehana Guzzle'i voogobjekti.
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream]);
    

Märkus

Seda valikut ei saa kasutada koos form_params, multipart või json.

cert

Kokkuvõte

Määra string, et määrata PEM-i sisaldava faili tee. vormindatud kliendipoolset sertifikaati. Kui nõutakse parooli, siis tuleb määrata massiivi, mis sisaldab PEM-faili teed esimeses massiivielemendis. millele järgneb sertifikaadi jaoks nõutav parool teises massiivis. element.

Tüübid
  • string
  • array
Vaikimisi

Ei ole

Pidev

GuzzleHttp\RequestOptions::CERT

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

küpsised

Kokkuvõte
Määrab, kas taotluses kasutatakse küpsiseid või mitte või millist küpsist. purki kasutada või milliseid küpsiseid saata.
Tüübid
GuzzleHttp\Cookie\CookieJarInterface
Vaikimisi
Puudub
Pidev
GuzzleHttp\RequestOptions::COOKIES

Te peate määrama küpsiste valiku GuzzleHttp\Cookie\CookieJarInterface või false.

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

Hoiatus

See valik mõjutab ainult siis, kui teie käitlejal on käsurea GuzzleHttp\Middleware::cookies middleware. See middleware lisatakse vaikimisi, kui klient luuakse ilma käitlejata, ja see lisatakse vaikimisi, kui luuakse käsitseja GuzzleHttp\default_handler abil.

Vihje

Kliendi loomisel saate määrata vaikimisi küpsiste valiku true et kasutada kliendiga seotud jagatud küpsiste sessiooni.

connect_timeout

Kokkuvõte
Float, mis kirjeldab ühenduse loomisel oodatavate sekundite arvu. serveriga. Kasutage 0, et oodata lõpmatult (vaikimisi käitumine).
Tüübid
float
Vaikimisi
0
Pidev
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]);

Märkus

Seda seadistust peab toetama taotluse saatmiseks kasutatav HTTP-käitleja. connect_timeout toetab praegu ainult sisseehitatud cURL käitleja.

debug

Kokkuvõte

Määra true või määra fopen() poolt tagastatud PHP voog, et lubada debugiväljundit koos taotluse saatmiseks kasutatava käsitsitajaga. Näiteks, cURL-i kasutamisel päringute edastamiseks, cURL-i verbose CURLOPT_VERBOSE väljastatakse. Kui kasutate PHP voogade mähist, siis voogade mähis teateid väljastatakse. Kui see on seatud true, kirjutatakse väljundisse PHP STDOUTi. Kui on antud PHP voog, siis kirjutatakse väljund voogu

Tüübid
  • bool
  • fopen() ressurss
Vaikimisi

Ei ole

Pidev

GuzzleHttp\RequestOptions::DEBUG

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

Ülaltoodud näite käivitamine annab tulemuseks midagi järgmist:

* 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

Kokkuvõte

Määrake, kas Content-Encoding vastused (gzip, deflate jne) automaatselt dekodeeritakse.

Tüübid
  • string
  • bool
Vaikimisi

true

Pidev

GuzzleHttp\RequestOptions::DECODE_CONTENT

Selle valikuga saab kontrollida, kuidas sisuga kodeeritud vastusekehad on käsitletakse. Vaikimisi on decode_content seatud väärtuseks true, mis tähendab, et kõik gzi-pakendatud või deflateeritud vastus dekodeeritakse Guzzle'i poolt.

Kui see on seatud false, ei dekodeerita vastuse keha kunagi, mis tähendab, et baitid läbivad käitleja muutmata kujul.

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

Kui see on seatud stringiks, dekodeeritakse vastuse baitid ja stringi väärtus decode_content esitatud väärtus antakse üle Accept-Encoding. päises esitatud päringu päises.

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

delay

Kokkuvõte

Millisekundite arv, mis tuleb enne taotluse saatmist edasi lükata

Tüübid
  • täisarv
  • float
Vaikimisi

null

Pidev

GuzzleHttp\RequestOptions::DELAY

expect

Kokkuvõte

Kontrollib pealkirja "Expect: 100-Continue" käitumist.

Tüübid
  • bool
  • integer
Vaikimisi

1048576

Pidev

GuzzleHttp\RequestOptions::EXPECT

Määra true, et lubada "Expect: 100-Continue" päise kasutamine kõigi taotluste puhul. mis saadavad keha. Määra false, et keelata "Expect: 100-Continue". päise kõigi taotluste puhul. Määra numbriks, nii et kasuliku koormuse suurus peab olema olema suurem kui see number, et saata Expect-pealkiri. Seadistamine number saadab Expect-pealkirja kõikide taotluste puhul, mille puhul on faili suurus ei ole võimalik kindlaks teha või mille puhul keha ei ole tagasi keritav.

Vaikimisi lisab Guzzle päise "Expect: 100-Continue", kui taotluse keha suurus on suurem kui 1 MB ja taotlus kasutab HTTP/1.1.

Märkus

See valik rakendub ainult HTTP/1.1 kasutamise korral. HTTP/1.0 ja HTTP/1.0 HTTP/2.0 protokollid ei toeta päise "Expect: 100-Continue". Toetus "Expect: 100-Continue" töövoogude käsitlemiseks peab olema rakendada Guzzle'i HTTP-käsitlejate poolt, mida klient kasutab.

force_ip_resolve

Kokkuvõte
Määrake "v4", kui soovite, et HTTP-käitlejad kasutaksid ainult ipv4-protokolli, või "v6", kui soovite kasutada ipv6-protokolli.
Tüübid
string
Vaikimisi
null
Pidev
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']);

Märkus

Seda seadistust peab toetama taotluse saatmiseks kasutatav HTTP-käitleja. force_ip_resolve toetab praegu ainult sisseehitatud cURLi ja voogkäsitlejad.

form_params

Kokkuvõte
Kasutatakse application/x-www-form-urlencoded POST päringu saatmiseks.
Tüübid
massiivi
Pidev
GuzzleHttp\RequestOptions::FORM_PARAMS

Assotsiatiivne massiivi vormivälja nimedest väärtustesse, kus iga väärtus on string või stringide massiiv. Määrab Content-Type päise väärtuseks application/x-www-form-urlencoded, kui Content-Type päis ei ole juba olemas. olemas.

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

Märkus

form_params ei saa kasutada koos multipart valikuga. Te peate kasutama ühte või teist. Kasutage form_params jaoks application/x-www-form-urlencoded taotluste puhul ja multipart multipart/form-data taotluste puhul.

Seda valikut ei saa kasutada koos body, multipart või json

pealkirjad

Kokkuvõte
Taotlusele lisatavate päiste assotsiatiivne massiiv. Iga võti on päise nimi ja iga väärtus on string või stringide massiiv. mis esindavad päise väljade väärtusi.
Tüübid
massiivi
Vaikimisi
Puudub
Pidev
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']
    ]
]);

Pealkirjad võib lisada vaikimisi valikud kliendi loomisel. Kui päised kasutatakse vaikimisi valikudena, rakendatakse neid ainult siis, kui loodav taotlus ei sisalda juba konkreetset päistekirja. See hõlmab nii taotlusi, mis on edastatud kliendile send() ja sendAsync() meetoditega, kui ka päringud mis on loodud kliendi poolt (nt request() ja 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

Kokkuvõte
Määra false, et keelata erandite viskamine HTTP-protokollile. vigade (st 4xx ja 5xx vastused). Erandid visatakse vaikimisi, kui HTTP-protokolli vigade ilmnemisel.
Tüübid
bool
Vaikimisi
true
Pidev
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

Hoiatus

See valik mõjutab ainult siis, kui teie käitlejal on käsurea GuzzleHttp\Middleware::httpErrors middleware. See middleware lisatakse vaikimisi, kui klient luuakse ilma käitlejata, ja see lisatakse järgmiselt vaikimisi, kui luuakse käsitseja GuzzleHttp\default_handler abil.

idn_conversion

Kokkuvõte

Rahvusvaheliste domeeninimede (IDN) tugi (vaikimisi lubatud, kui intl laiendus on saadaval)

Tüübid
  • bool
  • int
Vaikimisi

true kui intl laiendus on saadaval (ja ICU raamatukogu on 4.6+ PHP 7.2+ jaoks), false muidu

Pidev

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

Võimaldab/välja lülitab IDN-toe, saab kasutada ka täpseks kontrolliks, kombineerides IDNA_* konstandid (v.a IDNA_ERROR_*), vt $options parameetrit in idn_to_ascii() dokumentatsioonist täpsemalt.

json

Kokkuvõte
json valikut kasutatakse JSON-kodeeritud andmete hõlpsaks üleslaadimiseks, kuna päringu kehana. Content-Type päis application/json on application/json. lisatakse, kui sõnumil ei ole juba Content-Type päistet.
Tüübid
Iga PHP tüüp, mida saab kasutada PHP json_encode() funktsiooniga.
Vaikimisi
Puudub
Pidev
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Siin on näide, kuidas kasutada tap vahendustarkvara, et näha, milline taotlus saadetakse üle kaabli.

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

Märkus

See päringuvõimalus ei toeta Content-Type päise kohandamist. või PHP json_encode() valikuid. funktsiooni. Kui teil on vaja neid seadistusi kohandada, siis peate edastama funktsiooni JSON-kodeeritud andmed ise päringusse, kasutades body päringusse. valikuga ja peate määrama õige Content-Type päise, kasutades valikut headers taotluse valik.

Seda valikut ei saa kasutada koos body, form_params või multipart.

multipart

Kokkuvõte
Määrab taotluse keha multipart/form-data vormiks.
Tüübid
massiivi
Pidev
GuzzleHttp\RequestOptions::MULTIPART

multipart väärtus on assotsiatiivsete massiivide massiiv, millest igaüks sisaldab järgmisi võtmeväärtuspaare:

  • name: (string, nõutav) vormivälja nimi
  • sisu: (StreamInterface/resource/string, nõutav) Andmed, mida kasutatakse dokumendis vormi elemendis.
  • pealkirjad: (massiivi) Vabatahtlik assotsiatiivne massiivi kohandatud päiseid, mida kasutada koos vormielemendiga.
  • failinimi: (string) Vabatahtlik string, mis saadetakse osa failinimena.
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'
        ],
    ]
]);

Märkus

multipart ei saa kasutada koos form_params valikuga. Te peate kasutada ühte või teist. Kasutage form_params jaoks application/x-www-form-urlencoded taotluste puhul ja multipart multipart/form-data taotluste puhul.

Seda valikut ei saa kasutada koos body, form_params või json

on_headers

Kokkuvõte

Kutsutav, mis kutsutakse üles, kui vastuse HTTP-pealkirjad on muutunud. saadud, kuid keha ei ole veel alanud allalaadimist

Tüübid
  • callable
Pidev

GuzzleHttp\RequestOptions::ON_HEADERS

Väljakutse võtab vastu Psr\Http\Message\ResponseInterface objekti. Kui erand kutsutava poolt visatakse, siis vastusega seotud lubadus on lükatakse tagasi GuzzleHttp\Exception\RequestException abil, mis mähib selle visatud erandit.

Teil võib olla vaja teada, milliseid päiseid ja staatuskoode saadi, enne kui andmeid saab valamusse kirjutada.

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

Märkus

HTTP-handlerite kirjutamisel tuleb kasutada funktsiooni on_headers. enne andmete kirjutamist vastuse kehasse.

on_stats

Kokkuvõte

on_stats võimaldab teil saada juurdepääsu ülekandestatistikale taotlusele ja pääseda ligi käitleja madalama taseme ülekande üksikasjadele mis on seotud teie kliendiga. on_stats on callable, mida kutsutakse üles. kui käitleja on lõpetanud päringu saatmise. Callback kutsutakse üles ülekandestatistika taotluse, saadud vastuse või ilmnenud vea kohta. Andmete hulka kuulub kogu aeg, mis kulus taotluse saatmiseks.

Tüübid
  • callable
Pidev

GuzzleHttp\RequestOptions::ON_STATS

Väljakutse võtab vastu GuzzleHttp\TransferStats objekti.

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

Kokkuvõte

Määratleb funktsiooni, mida kutsutakse üles, kui ülekanne edeneb.

Tüübid
  • callable
Vaikimisi

Ei ole

Pidev

GuzzleHttp\RequestOptions::PROGRESS

Funktsioon võtab vastu järgmised positsioonilised argumendid:

  • eeldatavalt alla laaditavate baitide koguarv, null, kui see ei ole teada.
  • seni allalaaditud baitide arv
  • eeldatavalt üleslaaditavate baitide koguarv
  • seni üleslaaditud baitide arv
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Kokkuvõte

Edasta string, et määrata HTTP-proxy, või massiivi, et määrata erinevaid proxy'sid erinevate protokollide jaoks.

Tüübid
  • string
  • array
Vaikimisi

Ei ole

Pidev

GuzzleHttp\RequestOptions::PROXY

Andke üle string, et määrata kõigi protokollide proxy.

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

Anda üle assotsiatiivne massiivi, et määrata HTTP-proxy'd konkreetsete URI-skeemide jaoks. (nt "http", "https"). Anda no võtme-väärtuse paar, et anda nimekiri hostide nimed, millele ei tohiks proxy't teha.

Märkus

Guzzle täidab selle väärtuse automaatselt teie keskkonna NO_PROXY keskkonnamuutuja. Kui aga antakse proxy päringuvõimaluse puhul on teie ülesanne esitada no väärtus, mis on parsitud no. NO_PROXY keskkonnamuutuja (nt 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
    ]
]);

Märkus

Saate esitada proxy-URL-i, mis sisaldab skeemi, kasutajanime ja parooli. Näiteks "http://username:[email protected]:10".

query

Kokkuvõte

Assotsiatiivne massiiv päringustringide väärtustest või päringustringidest, mis tuleb lisada päringule.

Tüübid
  • array
  • string
Vaikimisi

Ei ole

Pidev

GuzzleHttp\RequestOptions::QUERY

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

Valikus query määratud päringustringid asendavad kõik päringustringide väärtused, mis on esitatud päringu URI-s.

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

read_timeout

Kokkuvõte
Float, mis kirjeldab voogedastatud keha lugemisel kasutatavat timeouti.
Tüübid
float
Vaikimisi
Vaikimisi kasutatakse default_socket_timeout PHP ini seadistuse väärtust.
Pidev
GuzzleHttp\RequestOptions::READ_TIMEOUT

Timeout kehtib üksikute lugemisoperatsioonide kohta voogedastatud kehal (kui valik stream on lubatud).

$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

Kokkuvõte

Määrake, kuhu vastuse keha salvestatakse.

Tüübid
  • string (faili tee kettal)
  • fopen() ressurss
  • Psr\Http\Message\StreamInterface
Vaikimisi

PHP temp stream

Pidev

GuzzleHttp\RequestOptions::SINK

Andke üle string, et määrata tee faili, mis salvestab vastuse sisu:

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

Andke fopen() abil tagastatud ressurss üle, et kirjutada vastus PHP voogudesse:

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

Andke üle Psr\Http\Message\StreamInterface objekt, et edastada vastuse keha avatud PSR-7 voogu.

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

Märkus

save_to taotluse valik on kaotanud kehtivuse ja on asendunud valikuga save_to. sink asemel. Valiku save_to pakkumine on nüüd alias sink.

ssl_key

Kokkuvõte

Määrake faili tee, mis sisaldab salajast SSL-võtit PEM-formaadis. formaadis. Kui nõutakse salasõna, siis määrata massiivi, mis sisaldab teed SSL-võtmele esimeses massiivielemendis, millele järgneb nõutav parool. sertifikaadi jaoks vajalik parool teises elemendis.

Tüübid
  • string
  • array
Vaikimisi

Ei ole

Pidev

GuzzleHttp\RequestOptions::SSL_KEY

Märkus

ssl_key on rakendatud HTTP-handlerite poolt. See on praegu ainult toetab ainult cURL-käsitleja, kuid seda võivad toetada ka teised kolmanda osa käitlejad.

stream

Kokkuvõte
Määra true, et voogedastada vastus, mitte laadida see kõik alla. ette.
Tüübid
bool
Vaikimisi
false
Pidev
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);
}

Märkus

Streaming-vastuse tugi peab olema rakendatud HTTP-käitleja poolt, mida kasutab klient. Seda võimalust ei pruugi iga HTTP-käsitleja toetada, aga vastuse objekti liides jääb samaks, sõltumata sellest, kas või käitleja seda toetab või ei toeta.

sünkroonne

Kokkuvõte
Määra true, et teavitada HTTP-käsitlejaid, et kavatsed oodata, et vastust. See võib olla kasulik optimeerimiseks.
Tüübid
bool
Vaikimisi
ei ole
Pidev
GuzzleHttp\RequestOptions::SYNCHRONOUS

kontrollida

Kokkuvõte

Kirjeldab SSL-sertifikaadi kontrollimise käitumist taotluse puhul

  • Määra true, et lubada SSL-sertifikaadi kontroll ja kasutada vaikimisi CA-paketti, mida pakub operatsioonisüsteem.
  • Seadistage false, et keelata sertifikaadi kontroll (see on ebaturvaline!)
  • Määra stringiks, et anda CA-paketi tee, et võimaldada kontrollimist. kasutades kohandatud sertifikaati.
Tüübid
  • bool
  • string
Vaikimisi

true

Pidev

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

Kui te ei vaja konkreetset sertifikaatide paketti, siis pakub Mozilla spetsiaalset üldkasutatav CA-pakett, mida saab alla laadida siit (mida pakub cURL-i haldaja). Kui teil on CA-pakett saadaval aadressil kettal, saate määrata PHP ini seadistuse "openssl.cafile", et see viitaks teele, kus asub faili, mis võimaldab teil jätta ära "verify" päringuvõimaluse. Palju rohkem üksikasju SSL-sertifikaatide kohta leiate veebilehelt cURL veebilehelt.

timeout

Kokkuvõte
Float, mis kirjeldab taotluse kogu aegumistähtaega sekundites. Kasutage 0 et oodata lõpmatult (vaikimisi käitumine).
Tüübid
float
Vaikimisi
0
Pidev
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

Kokkuvõte
Protokolli versioon, mida kasutada koos taotlusega.
Tüübid
string, float
Vaikimisi
1.1
Pidev
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);