Pyyntövaihtoehdot

Voit mukauttaa asiakkaan luomia ja siirtämiä pyyntöjä käyttämällä seuraavia tapoja request options. Pyyntövaihtoehdot ohjaavat pyynnön eri näkökohtia mukaan lukien otsikot, kyselymerkkijonoparametrit, aikakatkaisuasetukset, kyselyn runko ja pyynnön sisältöä ja paljon muuta.

Kaikki seuraavat esimerkit käyttävät seuraavaa asiakasta:

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

allow_redirects

Yhteenveto

Kuvaa pyynnön uudelleenohjauskäyttäytymistä

Tyypit
  • bool
  • array
Oletus
[
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    'track_redirects' => false
]
Jatkuva

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Aseta false, jos haluat poistaa uudelleenohjaukset käytöstä.

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

Aseta true arvoon true (oletusasetus) ottaaksesi käyttöön normaalit uudelleenohjaukset, joiden enimmäismäärä on 5 uudelleenohjausta.

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

Voit myös välittää assosiatiivisen matriisin, joka sisältää seuraavat avain-arvoparit:

  • max: (int, oletus=5) sallittujen uudelleenohjausten enimmäismäärä

  • strict: (bool, default=false) Asetetaan arvoksi true, jos halutaan käyttää tiukkoja uudelleenohjauksia. Strict RFC:n mukaiset uudelleenohjaukset tarkoittavat, että POST-uudelleenohjauspyynnöt lähetetään muodossa POST-pyynnöt vs. se, mitä useimmat selaimet tekevät eli ohjaavat POST-pyynnöt uudelleen. GET-pyynnöillä.

  • referer: (bool, default=false) Asetetaan arvoksi true, jos halutaan sallia Refererin lisääminen. otsikon lisääminen uudelleenohjauksen yhteydessä

  • pöytäkirjat: (array, default=['http', 'https']) Määritetään, mitkä protokollat ovat sallitaan uudelleenohjauspyynnöissä

  • on_redirect: (callable) PHP:n callable, joka kutsutaan, kun uudelleenohjaus tapahtuu. kohdataan. Kutsuttavaa kutsutaan alkuperäisen pyynnön ja saatu uudelleenohjausvastaus. Kaikki on_redirect-kutsun paluuarvot funktiota ei oteta huomioon.

  • track_redirects: (bool) Kun arvoksi asetetaan true, jokainen uudelleenohjattu URI ja status koodi seurataan X-Guzzle-Redirect-History ja X-Guzzle-Redirect-History ja X-Guzzle-Redirect-Status-History -otsikot. Kaikki URI:t ja tilakoodit tallennetaan siinä järjestyksessä, jossa uudelleenohjaukset kohdattiin

    Huomautus: Kun seurataan uudelleenohjauksia, X-Guzzle-Redirect-History -otsikko on seuraava ei sisällä alkuperäisen pyynnön URI:tä ja X-Guzzle-Redirect-Status-History -otsikkoa. otsikko sulkee pois lopullisen tilakoodin

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

Varoitus

Tällä vaihtoehdolla on vaikutusta vain, jos käsittelijälläsi on ominaisuus GuzzleHttp\Middleware::redirect middleware. Tämä väliohjelmisto lisätään oletusarvoisesti, kun asiakas luodaan ilman käsittelijää, ja se lisätään by oletusarvoisesti, kun käsittelijää luodaan GuzzleHttp\HandlerStack::create.

Huomautus

Tällä vaihtoehdolla ei ole vaikutusta, kun pyyntöjä tehdään käyttämällä GuzzleHttp\Client::sendRequest(). PSR-18:n noudattamiseksi kaikki uudelleenohjausvastaukset palautetaan sellaisenaan.

auth

Yhteenveto

Luovuta joukko HTTP-todennusparametreja, joita voidaan käyttää yhdessä pyynnön kanssa. Joukon on sisällettävä käyttäjänimi indeksissä [0], salasana indeksissä indeksissä [1], ja voit valinnaisesti antaa sisäänrakennetun todennustyypin kohdassa index [2]. Syötä null, jos haluat poistaa pyynnön todennuksen käytöstä

Tyypit
  • array
  • string
  • null
Oletus

Ei mitään

Jatkuva

GuzzleHttp\RequestOptions::AUTH

Sisäänrakennetut todennustyypit ovat seuraavat:

perus
Käytä perus-HTTP-todennusta Authorization -otsakkeessa (oletusasetus, jota käytetään, jos mikään ei ole käytössä. määritetty).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digest
Käytä digest-todennusta (HTTP-käsittelijän on tuettava).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Huomautus

Tätä tuetaan tällä hetkellä vain cURL-käsittelijää käytettäessä, mutta korvaavan vaihtoehdon luominen, jota voidaan käyttää minkä tahansa HTTP-käsittelijän kanssa, on suunnitteilla.

ntlm
Käytä Microsoft NTLM -todennus (HTTP-käsittelijän on tuettava).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Huomautus

Tätä tuetaan tällä hetkellä vain käytettäessä cURL-käsittelijää.

body

Yhteenveto

body -vaihtoehtoa käytetään olion rungon hallintaan. ympäröivää pyyntöä (esim. PUT, POST, PATCH)

Tyypit
  • string
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Oletus

Ei mitään

Jatkuva

GuzzleHttp\RequestOptions::BODY

Tämä asetus voidaan asettaa mille tahansa seuraavista tyypeistä:

  • string

    // Voit lähettää pyyntöjä, jotka käyttävät viestin runkona merkkijonoa.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • resurssi, joka palautetaan fopen()

    // Voit lähettää pyyntöjä, jotka käyttävät stream-resurssia runkona.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • Psr\Http\Message\StreamInterface

    // Voit lähettää pyyntöjä, jotka käyttävät runkona Guzzle stream-objektia.
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream]);
    

Huomautus

Tätä vaihtoehtoa ei voi käyttää form_params, multipart tai json kanssa.

cert

Yhteenveto

Asetetaan merkkijonoksi, jolla määritetään polku tiedostoon, joka sisältää PEM-tiedoston. muotoisen asiakaspuolen varmenteen. Jos salasana vaaditaan, aseta arvoksi array, joka sisältää PEM-tiedoston polun ensimmäisenä array-elementtinä. ja sen jälkeen varmenteeseen vaadittava salasana toisessa array-elementissä. elementti.

Tyypit
  • string
  • array
Oletus

Ei mitään

Jatkuva

GuzzleHttp\RequestOptions::CERT

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

cookies

Yhteenveto
Määrittää, käytetäänkö evästeitä pyynnössä vai ei tai mitä evästeitä käytetään. purkkia käytetään tai mitä evästeitä lähetetään.
Tyypit
GuzzleHttp\Cookie\CookieJarInterface
Oletus
Ei ole
Jatkuva
GuzzleHttp\RequestOptions::COOKIES

Sinun on määritettävä evästeet-vaihtoehto GuzzleHttp\Cookie\CookieJarInterface tai false.

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

Varoitus

Tällä vaihtoehdolla on vaikutusta vain, jos käsittelijälläsi on ominaisuus GuzzleHttp\Middleware::cookies middleware. Tämä väliohjelmisto lisätään oletusarvoisesti, kun asiakas luodaan ilman käsittelijää, ja se lisätään by oletusarvoisesti, kun luodaan käsittelijä GuzzleHttp\default_handler.

Vihje

Kun luot asiakasta, voit asettaa oletusarvoiseksi evästeasetukseksi true. käyttääksesi jaettua evästeistuntoa, joka on liitetty asiakkaaseen.

connect_timeout

Yhteenveto
Kelluva arvo, joka kuvaa odotettavien sekuntien lukumäärää yhteyden muodostamista yritettäessä. palvelimeen. Käytä 0 odottaaksesi loputtomiin (oletuskäyttäytyminen).
Tyypit
float
Oletus
0
Jatkuva
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]);

Huomautus

Pyynnön lähettämiseen käytettävän HTTP-käsittelijän on tuettava tätä asetusta. connect_timeout on tällä hetkellä tuettu vain sisäänrakennetussa cURL käsittelijä.

debug

Yhteenveto

Asetetaan true tai asetetaan fopen() palauttama PHP-virta to ottaa käyttöön debug-tulostuksen pyynnön lähettämiseen käytetyn käsittelijän kanssa. Esim, kun käytetään cURL:ää pyyntöjen siirtämiseen, cURL:n verbose CURLOPT_VERBOSE lähetetään. Kun käytetään PHP:n stream-kääre, stream-kääreen ilmoitukset lähetetään. Jos arvoksi asetetaan true, tuloste kirjoitetaan osoitteeseen PHP:n STDOUT:iin. Jos PHP-virta annetaan, tuloste kirjoitetaan virtaan

Tyypit
  • bool
  • fopen() resource
Oletus

Ei mitään

Jatkuva

GuzzleHttp\RequestOptions::DEBUG

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

Yllä olevan esimerkin suorittaminen tuottaisi seuraavanlaisen tuloksen:

* 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

Yhteenveto

Määritä, onko Content-Encoding vastaukset (gzip, deflate jne.) puretaan automaattisesti.

Tyypit
  • string
  • bool
Oletus

true

Jatkuva

GuzzleHttp\RequestOptions::DECODE_CONTENT

Tämän vaihtoehdon avulla voidaan hallita sitä, miten sisällön koodatut vastausrungot ovat käsitellään. Oletusarvoisesti decode_content on true, mikä tarkoittaa, että kaikki gzi-pakatut tai deflatoitu vastaus puretaan Guzzlessa.

Kun asetuksena on false, vastauksen runkoa ei koskaan pureta, eli tavut kulkevat käsittelijän läpi muuttumattomina.

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

Kun arvoksi asetetaan merkkijono, vastauksen tavut puretaan ja merkkijonon arvo puretaan. decode_content -vaihtoehdolle annettu arvo välitetään Accept-Encoding -arvona. otsakkeessa.

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

delay

Yhteenveto

Millisekuntien määrä, joka viivytetään ennen pyynnön lähettämistä.

Tyypit
  • kokonaisluku
  • float
Oletus

null

Jatkuva

GuzzleHttp\RequestOptions::DELAY

expect

Yhteenveto

Ohjaa "Expect: 100-Continue" -otsikon käyttäytymistä.

Tyypit
  • bool
  • integer
Oletus

1048576

Jatkuva

GuzzleHttp\RequestOptions::EXPECT

Aseta arvoksi true ottaaksesi käyttöön "Expect: 100-Continue" -otsikon kaikissa pyynnöissä. jotka lähettävät rungon. Aseta arvoksi false, jos haluat poistaa "Expect: 100-Continue" -otsikon käytöstä. otsikko kaikille pyynnöille. Asetetaan numeroksi, jotta hyötykuorman koon on oltava oltava suurempi kuin luku, jotta Expect-otsake voidaan lähettää. Asettaminen arvoon numero lähettää Expect-otsakkeen kaikille pyynnöille, joissa maksupohjan koko on hyötykuorman kokoa ei voida määrittää tai joissa runko ei ole kelautuva.

Oletusarvoisesti Guzzle lisää "Expect: 100-Continue"-otsikon, kun pyynnön rungon koko on yli 1 MB ja pyyntö käyttää HTTP/1.1:tä.

Huomautus

Tämä asetus vaikuttaa vain käytettäessä HTTP/1.1:tä. HTTP/1.0 ja HTTP/2.0-protokollat eivät tue "Expect: 100-Continue"-otsikkoa. "Expect: 100-Continue"-työnkulun käsittelyn tuen on oltava asiakkaan käyttämien Guzzle HTTP-käsittelijöiden on toteutettava.

force_ip_resolve

Yhteenveto
Aseta arvoksi "v4", jos haluat HTTP-käsittelijöiden käyttävän vain ipv4-protokollaa, tai "v6", jos haluat ipv6-protokollan.
Tyypit
string
Oletus
null
Jatkuva
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']);

Huomautus

Pyynnön lähettämiseen käytettävän HTTP-käsittelijän on tuettava tätä asetusta. force_ip_resolve tuetaan tällä hetkellä vain sisäänrakennetussa cURL:ssä. ja stream-käsittelijät.

form_params

Yhteenveto
Käytetään application/x-www-form-urlencoded POST-pyynnön lähettämiseen.
Tyypit
array
Jatkuva
GuzzleHttp\RequestOptions::FORM_PARAMS

Lomakekentän nimien assosiatiivinen joukko arvoihin, joissa jokainen arvo on merkkijono tai merkkijonojen joukko. Asettaa Content-Type-otsikon arvoksi application/x-www-form-urlencoded, jos Content-Type-otsikkoa ei ole jo annettu. läsnä.

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

Huomautus

form_params ei voi käyttää multipart -vaihtoehdon kanssa. Sinun on käytettävä jompaa kumpaa. Käytä form_params application/x-www-form-urlencoded varten. pyyntöihin ja multipart multipart/form-data pyyntöihin.

Tätä vaihtoehtoa ei voi käyttää body, multipart tai json kanssa.

otsikot

Yhteenveto
Assosiatiivinen joukko pyyntöön lisättäviä otsikoita. Jokainen avain on otsikon nimi, ja jokainen arvo on merkkijono tai merkkijonojen joukko. jotka edustavat otsikkokenttien arvoja.
Tyypit
array
Oletusarvot
Ei ole
Jatkuva
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']
    ]
]);

Otsikot voidaan lisätä oletusasetuksina asiakasta luotaessa. Kun otsikot käytetään oletusasetuksina, niitä sovelletaan vain, jos luotava pyyntö on ei jo sisällä kyseistä otsikkoa. Tämä koskee sekä pyyntöjä, jotka on välitetty asiakkaalle send() ja sendAsync() -menetelmillä, sekä pyyntöjä asiakkaan luomat (esim. 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

Yhteenveto
Aseta false, jos haluat estää poikkeusten heittämisen HTTP-protokollassa. virheet (eli 4xx- ja 5xx-vastaukset). Poikkeuksia heitetään oletusarvoisesti, kun HTTP-protokollan virheitä kohdataan.
Tyypit
bool
Oletus
true
Jatkuva
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

Varoitus

Tällä vaihtoehdolla on vaikutusta vain, jos käsittelijälläsi on ominaisuus GuzzleHttp\Middleware::httpErrors middleware. Tämä väliohjelmisto lisätään oletusarvoisesti, kun asiakas luodaan ilman käsittelijää, ja se lisätään by oletusarvoisesti, kun luodaan käsittelijä GuzzleHttp\default_handler avulla.

idn_conversion

Yhteenveto

IDN-tuki (Internationalized Domain Name) (oletusarvoisesti käytössä, jos intl -laajennus on käytettävissä)

Tyypit
  • bool
  • int
Oletus

true jos intl laajennus on saatavilla (ja ICU-kirjasto on 4.6+ PHP 7.2+:lle), false muutoin

Jatkuva

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

Ottaa IDN-tuen käyttöön tai poistaa sen käytöstä, voidaan myös käyttää tarkkaan ohjaukseen yhdistämällä IDNA_*-vakiot (paitsi IDNA_ERROR_*), katso $options -parametrin parametri kohdassa idn_to_ascii() dokumentaatiossa lisätietoja.

json

Yhteenveto
json -vaihtoehtoa käytetään JSON-koodattujen tietojen lataamiseen helposti. pyynnön runkona. Content-Type-otsakkeen application/json tulee olla lisätään, jos viestissä ei jo ole Content-Type-otsikkoa.
Tyypit
Mikä tahansa PHP-tyyppi, jota voidaan käyttää PHP:n json_encode() toiminnolla.
Oletus
Ei ole
Jatkuva
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Tässä on esimerkki tap väliohjelmiston käytöstä nähdäksesi, mitä pyyntöjä lähetetään.

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

Huomautus

Tämä pyyntövaihtoehto ei tue Content-Type-otsikon mukauttamista. tai PHP:n json_encode() vaihtoehtoja. funktiota. Jos haluat mukauttaa näitä asetuksia, sinun on välitettävä funktio JSON-koodatut tiedot itse pyyntöön body -pyynnön avulla. vaihtoehdon avulla ja sinun on määritettävä oikea Content-Type-otsake käyttämällä vaihtoehtoa headers -vaihtoehto.

Tätä vaihtoehtoa ei voi käyttää body, form_params tai multipart kanssa.

multipart

Yhteenveto
Asettaa pyynnön rungon multipart/form-data -lomakkeeksi.
Tyypit
array
Jatkuva
GuzzleHttp\RequestOptions::MULTIPART

multipart arvo on assosiatiivisten matriisien joukko, joista jokainen sisältää seuraavat avain-arvoparit:

  • name: (string, pakollinen) lomakekentän nimi
  • sisältö: (StreamInterface/resource/string, pakollinen) Tiedot, joita käytetään kohdassa lomake-elementissä.
  • headers: (array) Valinnainen assosiatiivinen joukko mukautettuja otsikoita, joita käytetään yhdessä lomake-elementin kanssa.
  • tiedostonimi: (string) Valinnainen merkkijono, joka lähetetään osan tiedostonimenä.
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'
        ],
    ]
]);

Huomautus

multipart ei voi käyttää form_params -vaihtoehdon kanssa. Sinun täytyy käyttää jompaakumpaa. Käytä form_params application/x-www-form-urlencoded -vaihtoehtoa. pyyntöihin ja multipart multipart/form-data pyyntöihin.

Tätä vaihtoehtoa ei voi käyttää body, form_params tai json kanssa.

on_headers

Yhteenveto

Kutsuttavaa, jota kutsutaan, kun vastauksen HTTP-otsakkeissa on ollut vastaanotettu, mutta vastauksen runko ei ole vielä alkanut latautua

Tyypit
  • callable
Jatkuva

GuzzleHttp\RequestOptions::ON_HEADERS

Kutsuttava ominaisuus hyväksyy Psr\Http\Message\ResponseInterface -olion. Jos poikkeus heitetään kutsuttavalla, vastaukseen liittyvä lupaus on hylätään GuzzleHttp\Exception\RequestException -oliolla, joka kietoo ympärilleen -olion. heitetty poikkeus.

Sinun on ehkä tiedettävä, mitä otsikoita ja tilakoodeja vastaanotettiin, ennen kuin tiedot voidaan kirjoittaa nieluun.

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

Huomautus

Kun kirjoitetaan HTTP-käsittelijöitä, on_headers -funktiota on kutsuttava. ennen tietojen kirjoittamista vastauksen runkoon.

on_stats

Yhteenveto

on_stats avulla voit päästä käsiksi siirtotilastoihin. pyyntöön ja päästä käsittelijän alemman tason siirtotietoihin. joka liittyy asiakkaaseesi. on_stats on callable, jota kutsutaan seuraavasti kun käsittelijä on lopettanut pyynnön lähettämisen. Takaisinkutsua kutsutaan siirtotilastojen kanssa pyynnöstä, vastaanotetusta vastauksesta tai kohdatusta virheestä. Tietoihin sisältyy kokonaisaika, joka kului pyynnön lähettämiseen kulunut aika.

Tyypit
  • callable
Jatkuva

GuzzleHttp\RequestOptions::ON_STATS

Kutsuttava ominaisuus hyväksyy GuzzleHttp\TransferStats objektin.

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

Yhteenveto

Määrittää funktion, jota kutsutaan, kun siirto edistyy.

Tyypit
  • callable
Oletus

Ei mitään

Jatkuva

GuzzleHttp\RequestOptions::PROGRESS

Funktio hyväksyy seuraavat sijaintiargumentit:

  • ladattavien tavujen kokonaismäärä, nolla, jos sitä ei tiedetä.
  • tähän mennessä ladattujen tavujen määrä
  • ladattavien tavujen kokonaismäärä.
  • tähän mennessä ladattujen tavujen määrä
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Yhteenveto

Anna merkkijono HTTP-välityspalvelimen määrittämiseksi tai joukko HTTP-välityspalvelimen määrittämiseksi. eri välittäjiä eri protokollia varten

Tyypit
  • string
  • array
Oletus

Ei mitään

Jatkuva

GuzzleHttp\RequestOptions::PROXY

Anna merkkijono määrittääksesi välityspalvelimen kaikkia protokollia varten.

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

Välitä assosiatiivinen joukko HTTP-välittäjien määrittelemiseksi tietyille URI-skeemoille. (esim. "http", "https"). Anna no avain-arvopari, joka antaa luettelon isäntänimiä, joihin ei pitäisi tehdä välityspalvelua.

Huomautus

Guzzle täyttää tämän arvon automaattisesti ympäristösi arvolla NO_PROXY ympäristömuuttuja. Kun kuitenkin annat proxy pyyntövaihtoehtoa, sinun on annettava no arvo, joka on jäsennetty osoitteesta NO_PROXY -ympäristömuuttujasta. (esim. 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
    ]
]);

Huomautus

Voit antaa välityspalvelimen URL-osoitteita, jotka sisältävät järjestelmän, käyttäjänimen ja salasanan. Esimerkiksi "http://username:[email protected]:10".

query

Yhteenveto

Assosiatiivinen joukko kyselymerkkijonon arvoja tai kyselymerkkijono, johon lisätään kyselymerkkijono. pyyntöön

Tyypit
  • array
  • string
Oletus

Ei mitään

Jatkuva

GuzzleHttp\RequestOptions::QUERY

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

query -vaihtoehdossa määritetyt kyselymerkkijonot korvaavat kaikki pyynnön URI:ssa annetut kyselymerkkijonoarvot.

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

read_timeout

Yhteenveto
Float, joka kuvaa aikakatkaisua, jota käytetään suoratoistokappaleen lukemisessa.
Tyypit
float
Oletus
Oletusarvo on default_socket_timeout PHP ini -asetuksen arvo.
Jatkuva
GuzzleHttp\RequestOptions::READ_TIMEOUT

Aikakatkaisu koskee yksittäisiä lukutoimintoja suoratoistokappaleelle (kun stream -vaihtoehto on käytössä).

$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

Yhteenveto

Määritä, mihin vastauksen runko tallennetaan.

Tyypit
  • string (polku tiedostoon levyllä)
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Oletus

PHP temp stream

Jatkuva

GuzzleHttp\RequestOptions::SINK

Anna merkkijono, jolla määritetään polku tiedostoon, joka tallentaa vastauksen rungon sisällön:

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

Syötä fopen():lla palautettu resurssi kirjoittaaksesi vastauksen PHP-virtaan:

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

Luovuta Psr\Http\Message\StreamInterface -olio vastauksen rungon siirtämiseksi avoimeen PSR-7-virtaan.

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

Huomautus

save_to -pyyntövaihtoehto on poistettu käytöstä ja tilalle on otettu -vaihtoehto. sink -pyyntövaihtoehdon hyväksi. save_to -vaihtoehdon tarjoaminen on nyt alias sink -vaihtoehdosta.

ssl_key

Yhteenveto

Määritä polku tiedostoon, joka sisältää yksityisen SSL-avaimen PEM-muodossa. muodossa. Jos salasana vaaditaan, aseta joukko, joka sisältää polun. SSL-avaimeen ensimmäisenä array-elementtinä, jota seuraa vaadittu salasana. varmenteeseen vaadittava salasana toisessa elementissä.

Tyypit
  • string
  • array
Oletus

Ei mitään

Jatkuva

GuzzleHttp\RequestOptions::SSL_KEY

Huomautus

ssl_key toteutetaan HTTP-käsittelijöillä. Tämä on tällä hetkellä vain cURL-käsittelijän tukema, mutta sitä voivat tukea myös muut kolmannen osapuolen tuottamat käsittelijät.

stream

Yhteenveto
Aseta arvoksi true, jos haluat suoratoistaa vastauksen sen sijaan, että lataisit sen kokonaan. etukäteen.
Tyypit
bool
Oletus
false
Jatkuva
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);
}

Huomautus

Streaming-vastauksen tuki on toteutettava HTTP-käsittelijässä, jota käyttää asiakas käyttää. Kaikki HTTP-käsittelijät eivät välttämättä tue tätä vaihtoehtoa, mutta ominaisuuden vastausobjektin rajapinta pysyy samana riippumatta siitä, onko tai onko käsittelijä tukee sitä.

synkroninen

Yhteenveto
Aseta arvoksi true ilmoittaaksesi HTTP-käsittelijöille, että aiot odottaa, että vastausta. Tästä voi olla hyötyä optimoinnissa.
Tyypit
bool
Oletus
none
Jatkuva
GuzzleHttp\RequestOptions::SYNCHRONOUS

verify

Yhteenveto

Kuvaa pyynnön SSL-varmenteen tarkistuskäyttäytymistä.

  • Aseta arvoksi true ottaaksesi SSL-varmenteen tarkistuksen käyttöön ja käyttääksesi oletusarvoista CA-pakettia, jonka käyttöjärjestelmä tarjoaa.
  • Aseta arvoksi false, jos haluat poistaa varmenteen tarkistuksen käytöstä (tämä ei ole turvallista!)
  • Aseta merkkijonoksi, joka antaa polun CA-kokonaisuuteen todentamisen mahdollistamiseksi. mukautetun varmenteen avulla.
Tyypit
  • bool
  • string
Oletus

true

Jatkuva

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

Jos et tarvitse tiettyä varmennepakettia, Mozilla tarjoaa yleisesti käytetyn varmentajapaketin, jonka voi ladata osoitteesta täältä (jonka tarjoaa cURL:n ylläpitäjä). Kun CA-paketti on saatavilla osoitteessa levyllä, voit asettaa "openssl.cafile" PHP ini -asetuksen osoittamaan polkua osoitteeseen tiedostoon, jolloin voit jättää "verify"-pyyntövaihtoehdon pois. Paljon yksityiskohtaisempaa tietoa SSL-varmenteista löytyy osoitteesta cURL-sivustolta.

timeout

Yhteenveto
Kelluva arvo, joka kuvaa pyynnön kokonaisaikakatkaisua sekunteina. Käytä 0 odottaaksesi loputtomiin (oletuskäyttäytyminen).
Tyypit
float
Oletus
0
Jatkuva
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

Yhteenveto
Pyynnössä käytettävä protokollaversio.
Tyypit
string, float
Oletus
1.1
Jatkuva
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);