Kérési lehetőségek

Az ügyfél által létrehozott és továbbított kéréseket a következő eszközökkel testreszabhatja request options segítségével. A kérési opciók a kérés különböző aspektusait szabályozzák beleértve a fejléceket, a lekérdezési karakterlánc paramétereit, az időkorlát beállításait, a kérés testét, a kérés testét, és még sok minden mást.

Az alábbi példák mindegyike a következő ügyfelet használja:

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

allow_redirects

Összefoglaló

Leírja a kérés átirányítási viselkedését

Típusok
  • bool
  • array
Alapértelmezett
[
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    'track_redirects' => false
]
Állandó

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Állítsa false értékre az átirányítások letiltásához.

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

Állítsa true értékre (az alapértelmezett beállítás) a normál átirányítások engedélyezéséhez, maximum 5 átirányítással.

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

Átadhat egy asszociatív tömböt is, amely a következő kulcs-érték párokat tartalmazza:

  • max: (int, alapértelmezett=5) a megengedett átirányítások maximális száma.

  • strict: (bool, default=false) A szigorú átirányítások használatához állítsd igazra. A szigorú RFC-konform átirányítások azt jelentik, hogy a POST átirányítási kérések a következő formában kerülnek elküldésre POST kérések, szemben azzal, amit a legtöbb böngésző tesz, vagyis a POST kérések átirányításával. GET kérésekkel irányítja át

  • referer: (bool, default=false) A Referer hozzáadásának engedélyezéséhez állítsd igazra. fejlécet átirányításkor

  • protokollok: (array, default=['http', 'https']) Megadva, hogy mely protokollok vannak engedélyezettek az átirányítási kérésekhez

  • on_redirect: (callable) PHP callable, amely akkor hívódik meg, amikor egy átirányítás történik. találkozik. A hívhatót az eredeti kéréssel és a átirányítási válasz, amelyet kapott. Az on_redirect bármely visszatérési értéke függvénytől kapott eredményt figyelmen kívül hagyjuk.

  • track_redirects: (bool) Ha true értékre van állítva, akkor minden átirányított URI és státusz kódot a X-Guzzle-Redirect-History és az X-Guzzle-Redirect-History listában követni fogja. X-Guzzle-Redirect-Status-History fejlécekben. Minden URI és státuszkódok az átirányítások sorrendjében kerülnek tárolásra.

    Megjegyzés: Az átirányítások nyomon követésekor a X-Guzzle-Redirect-History fejléc a következő lesz:

    X-Guzzle-Redirect-History. kizárja az eredeti kérés URI-jét és a X-Guzzle-Redirect-Status-History fejléc kizárja a végső státuszkódot.

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

Figyelmeztetés

Ez az opció csak akkor van hatással, ha a kezelője rendelkezik a GuzzleHttp\Middleware::redirect middleware. Ez a middleware hozzáadásra kerül alapértelmezés szerint hozzáadódik, amikor egy kliens kezelő nélkül jön létre, és hozzáadja a amikor a GuzzleHttp\HandlerStack::create segítségével hoz létre egy kezelőt.

Megjegyzés:

Ennek az opciónak nincs hatása, amikor a GuzzleHttp\Client::sendRequest() használatával történik a kérés. A PSR-18-nak való megfelelés érdekében minden átirányítási válasz változatlanul visszaküldésre kerül.

auth

Összefoglaló

Adja át a HTTP-hitelesítési paraméterek tömbjét, amelyet a kéréssel. A tömbnek tartalmaznia kell a felhasználónevet a [0] indexben, a jelszót a [0] indexben. index [1] indexben, és opcionálisan megadhat egy beépített hitelesítési típust a index [2]. Adja meg a null értéket a hitelesítés kikapcsolásához egy kérésnél.

Típusok
  • array
  • string
  • null
Alapértelmezett

Nincs

Állandó

GuzzleHttp\RequestOptions::AUTH

A beépített hitelesítési típusok a következők:

alapvető
Használja az alapvető HTTP-hitelesítést a Authorization fejlécben (az alapértelmezett beállítás, amelyet akkor használnak, ha nincs a nincs megadva).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digest
digest hitelesítés használata (a HTTP kezelőnek támogatnia kell).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Megjegyzés:

Ez jelenleg csak a cURL kezelő használata esetén támogatott, de a egy olyan helyettesítő létrehozása, amely bármilyen HTTP kezelővel használható, a tervben van.

ntlm
Használja a Microsoft NTLM hitelesítés (a HTTP-kezelőnek támogatnia kell).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Megjegyzés:

Ez jelenleg csak a cURL kezelő használata esetén támogatott.

body

Összefoglaló

A body opciót egy entitás testének vezérlésére használjuk. tartalmazó kérés (pl. PUT, POST, PATCH) testét

Típusok
  • string
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Alapértelmezett

Nincs

Állandó

GuzzleHttp\RequestOptions::BODY

Ez a beállítás a következő típusok bármelyikére beállítható:

  • string

    // Olyan kéréseket küldhet, amelyek egy karakterláncot használnak üzenettestként.
    $client->request('PUT', '/put', ['body' => 'foo']);
    
  • resource returned from fopen()

    // Olyan kéréseket küldhet, amelyek testként stream erőforrást használnak.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->request('PUT', '/put', ['body' => $resource]);
    
  • Psr\Http\Message\StreamInterface

    // Olyan kéréseket küldhetsz, amelyek testként egy Guzzle stream objektumot használnak.
    $stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
    $client->request('POST', '/post', ['body' => $stream]);
    

Megjegyzés:

Ez az opció nem használható form_params, multipart, vagy json esetén.

cert

Összefoglaló

A PEM-et tartalmazó fájl elérési útvonalának megadásához beállított karakterlánc. formázott ügyféloldali tanúsítványt tartalmazó fájlt. Ha jelszóra van szükség, akkor állítsa be a egy tömb, amely a PEM fájl elérési útvonalát tartalmazza az első tömbelemben. amelyet a tanúsítványhoz szükséges jelszó követ a második tömbben. elem.

Típusok
  • string
  • array
Alapértelmezett

Nincs

Állandó

GuzzleHttp\RequestOptions::CERT

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

cookies

Összefoglaló
Meghatározza, hogy egy kérés során használnak-e sütiket, vagy sem, illetve, hogy milyen sütiket tégelyt használjon, vagy milyen cookie-kat küldjön.
Típusok
GuzzleHttp\Cookie\CookieJarInterface
Alapértelmezett
Nincs
Állandó
GuzzleHttp\RequestOptions::COOKIES

A cookie-k opciót GuzzleHttp\Cookie\CookieJarInterface vagy false formában kell megadni.

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

Figyelmeztetés

Ez az opció csak akkor van hatással, ha a kezelője rendelkezik a GuzzleHttp\Middleware::cookies middleware. Ez a middleware hozzáadásra kerül alapértelmezés szerint hozzáadódik, amikor egy kliens kezelő nélkül jön létre, és hozzáadja a code class="docutils literal">GuzzleHttp\default_handler segítségével történő kezelő létrehozásakor.

Fő fogadás

Az ügyfél létrehozásakor az alapértelmezett cookie opciót true értékre állíthatja be. az ügyfélhez társított megosztott cookie-munkamenet használatához.

connect_timeout

Összefoglaló
A csatlakozási kísérlet során várakozni kívánt másodpercek számát leíró változó. egy kiszolgálóhoz. Használja a 0 értéket a határozatlan ideig tartó várakozáshoz (ez az alapértelmezett viselkedés).
Típusok
float
Alapértelmezett
0
Állandó
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]);

Megjegyzés:

Ezt a beállítást a kérelem elküldéséhez használt HTTP-kezelőnek támogatnia kell. connect_timeout jelenleg csak a beépített cURL támogatja. kezelő.

debug

Összefoglaló

Állítsa true értékre, vagy állítsa be a fopen() által visszaadott PHP folyamra, hogy a hibakijelzés engedélyezése a kérés elküldéséhez használt kezelővel. Például, amikor a cURL-t használjuk a kérések továbbítására, a cURL CURLOPT_VERBOSE kibocsátásra kerül. A PHP stream wrapper használata esetén a stream wrapper értesítések fognak kibocsátásra kerülni. Ha true-ra van állítva, akkor a kimenet a következő címre íródik ki PHP STDOUT-ba íródik. Ha egy PHP stream van megadva, a kimenet a streambe íródik

Típusok
  • bool
  • fopen() resource
Alapértelmezett

Nincs

Állandó

GuzzleHttp\RequestOptions::DEBUG

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

A fenti példa futtatásával a következő eredményt kapnánk:

* 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

Összefoglaló

Annak megadása, hogy a Content-Encoding válaszok (gzip, deflate stb.) automatikusan dekódolásra kerüljenek

Típusok
  • string
  • bool
Alapértelmezett

true

Állandó

GuzzleHttp\RequestOptions::DECODE_CONTENT

Ezzel az opcióval szabályozható, hogy a tartalomkódolt választestek hogyan legyenek kezeljenek. Alapértelmezés szerint a decode_content true-ra van állítva, ami azt jelenti, hogy minden gzipped vagy deflált választ a Guzzle dekódolja.

Ha false értékre van állítva, a válasz teste soha nem kerül dekódolásra, vagyis a bájtok változatlanul haladnak át a kezelőn.

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

Ha stringre van állítva, akkor a válasz bájtjai dekódolásra kerülnek, és a string értéket a decode_content opcióhoz megadott értéket adjuk át a Accept-Encoding opciónak. fejlécet a kérelemben.

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

delay

Összefoglaló

A kérés elküldése előtt késleltetendő milliszekundumok száma.

Típusok
  • integer
  • float
Alapértelmezett

null

Állandó

GuzzleHttp\RequestOptions::DELAY

expect

Összefoglaló

Az "Expect: 100-Continue" fejléc viselkedését szabályozza.

Típusok
  • bool
  • integer
Alapértelmezett

1048576

Állandó

GuzzleHttp\RequestOptions::EXPECT

Állítsa true értékre, hogy engedélyezze az "Expect: 100-Continue" fejlécet minden kérésnél. amelyek testet küldenek. A false értékre állítva letiltja az "Expect: 100-Continue" fejlécet. fejlécet minden kérés esetében. Egy számra állítsa be, hogy a hasznos teher mérete a nagyobbnak kell lennie a számnál ahhoz, hogy az Expect fejléc elküldésre kerüljön. Beállítása egy számra állítva az Expect fejlécet minden olyan kérésnél elküldi, ahol a fájl mérete a payload nem határozható meg, vagy ahol a test nem visszatekerhető.

Alapértelmezés szerint a Guzzle hozzáadja az "Expect: 100-Continue" fejlécet, ha a kérelem testének mérete nagyobb, mint 1 MB, és a kérelem HTTP/1.1-et használ.

Megjegyzés:

Ez a beállítás csak a HTTP/1.1 használata esetén lép életbe. A HTTP/1.0 és HTTP/2.0 protokollok nem támogatják az "Expect: 100-Continue" fejlécet. Az "Expect: 100-Continue" munkafolyamat kezelésének támogatását a következő módon kell biztosítani az ügyfél által használt Guzzle HTTP-kezelőknek kell megvalósítaniuk.

force_ip_resolve

Összefoglaló
Állítsa be a "v4" értéket, ha azt szeretné, hogy a HTTP-kezelők csak az ipv4 protokollt használják, vagy a "v6" értéket az ipv6 protokoll esetében.
Típusok
string
Alapértelmezett
null
Állandó
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']);

Megjegyzés:

Ezt a beállítást a kérelem elküldéséhez használt HTTP-kezelőnek támogatnia kell. force_ip_resolve jelenleg csak a beépített cURL támogatja. és a stream kezelők.

form_params

Összefoglaló
application/x-www-form-urlencoded POST kérés küldésére szolgál.
Típusok
array
Állandó
GuzzleHttp\RequestOptions::FORM_PARAMS

Az űrlapmező nevének asszociatív tömbje az értékekhez, ahol minden érték egy karakterlánc vagy stringek tömbje. A Content-Type fejléc beállítása application/x-www-form-urlencoded, ha még nincs Content-Type fejléc. jelen van.

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

Megjegyzés:

form_params nem használható a multipart opcióval. A vagy az egyiket, vagy a másikat. Használja a form_params opciót a application/x-www-form-urlencoded esetén. kérelmekhez, és multipart a multipart/form-data kérelmekhez.

Ez az opció nem használható body, multipart, vagy json esetén.

headers

Összefoglaló
A kérelemhez hozzáadandó fejlécek asszociatív tömbje. Minden kulcs a egy fejléc neve, és minden érték egy karakterlánc vagy karakterláncok tömbje. amely a fejléc mező értékeit képviseli.
Típusok
array
Alapértelmezett értékek
Nincs
Állandó
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']
    ]
]);

A fejlécek az ügyfél létrehozásakor alapértelmezett beállításként adhatók hozzá. Ha a fejlécek alapértelmezett opcióként használnak, csak akkor kerülnek alkalmazásra, ha a létrehozandó kérés még nem tartalmazza az adott fejlécet. Ez magában foglalja mind a kéréseket, amelyeket átadtak az ügyfélnek a send() és sendAsync() metódusokban átadott, valamint a kérések is. az ügyfél által létrehozott (pl. request() és 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

Összefoglaló
Állítsa false értékre, hogy letiltsa a kivételek dobását egy HTTP protokollon. hibák (azaz a 4xx és 5xx válaszok). A kivételek alapértelmezés szerint akkor dobódnak, ha HTTP protokoll hibák esetén.
Típusok
bool
Alapértelmezett
true
Állandó
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

Figyelmeztetés

Ez az opció csak akkor van hatással, ha a kezelője rendelkezik a GuzzleHttp\Middleware::httpErrors middleware. Ez a middleware hozzáadásra kerül alapértelmezés szerint, amikor egy klienst kezelő nélkül hozunk létre, és hozzáadja a code class="docutils literal">GuzzleHttp\default_handler segítségével történő kezelő létrehozásakor.

idn_conversion

Összefoglaló

Nemzetközi domain név (IDN) támogatás (alapértelmezés szerint engedélyezve, ha intl kiterjesztés elérhető)

Típusok
  • bool
  • int
Alapértelmezett

true ha intl kiterjesztés elérhető (és az ICU könyvtár 4.6+ PHP 7.2+ esetén), false egyébként

Állandó

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

Az IDN-támogatás engedélyezése/letiltása, pontos vezérlésre is használható a következők kombinálásával IDNA_* konstansok (kivéve IDNA_ERROR_*), lásd $options paramétert az alábbiakban. idn_to_ascii() dokumentációban található további részletekért.

json

Összefoglaló
A json opciót a JSON kódolású adatok egyszerű feltöltésére használjuk, mint a . kérés testeként. A application/json Content-Type fejléc a következő lesz. hozzáadódik, ha az üzenetben még nincs Content-Type fejléc.
Típusok
Bármely PHP típus, amelyet a PHP json_encode() függvényével lehet kezelni.
Alapértelmezett
Nincs
Állandó
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Íme egy példa a tap middleware használatára, hogy lássuk, milyen kéréseket küldünk a vezetéken keresztül.

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

Megjegyzés:

Ez a kérési opció nem támogatja a Content-Type fejléc testreszabását. vagy a PHP json_encode() opcióinak egyikét sem. funkciót. Ha ezeket a beállításokat testre kell szabni, akkor át kell adnia a JSON kódolt adatokat a body kérés segítségével. opciót, és meg kell adnia a megfelelő Content-Type fejlécet a headers kérési opciót.

Ez az opció nem használható body, form_params, vagy multipart esetén.

multipart

Összefoglaló
A kérés testét egy multipart/form-data űrlapra állítja be.
Típusok
array
Állandó
GuzzleHttp\RequestOptions::MULTIPART

A multipart értéke asszociatív tömbök tömbje, amelyek mindegyike a következő kulcs-érték párokat tartalmazza:

  • name: (string, kötelező) az űrlapmező neve
  • tartalom: (StreamInterface/resource/string, kötelező) Az adatok, amelyeket használni kell a form elemben használandó adatok.
  • headers: (tömb) Választható asszociatív tömb az egyéni fejlécekből, amelyeket a következővel használhatunk az űrlapelemmel.
  • filename: (string) Opcionális karakterlánc, amelyet fájlnévként kell elküldeni a részbe.
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'
        ],
    ]
]);

Megjegyzés:

multipart nem használható a form_params opcióval. A következőre van szükség vagy az egyiket, vagy a másikat kell használni. Használja a form_params opciót a application/x-www-form-urlencoded esetén. kérelmekhez, és multipart a multipart/form-data kérelmekhez.

Ez az opció nem használható a body, form_params, vagy json esetén.

on_headers

Összefoglaló

Egy hívható, amely akkor hívódik meg, amikor a válasz HTTP fejlécében a megkaptuk, de a válasz testének letöltése még nem kezdődött meg

Típusok
  • callable
Állandó

GuzzleHttp\RequestOptions::ON_HEADERS

A hívható objektum egy Psr\Http\Message\ResponseInterface objektumot fogad el. Ha egy kivétel dob a hívható, akkor a válaszhoz tartozó ígéret a válaszhoz tartozó visszautasításra kerül egy GuzzleHttp\Exception\RequestException, amely a kivételt, amelyet dobott.

Előfordulhat, hogy tudnia kell, milyen fejlécek és állapotkódok érkeztek, mielőtt az adatok kiírhatók a mosogatóba.

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

Megjegyzés:

HTTP kezelők írása során a on_headers függvényt kell meghívni. mielőtt adatokat írnánk a válasz testébe.

on_stats

Összefoglaló

on_stats lehetővé teszi, hogy hozzáférjen egy átviteli statisztikához egy kéréshez, és hozzáférhet a kezelő alacsonyabb szintű átviteli adataihoz. ügyfélhez kapcsolódó kezelőjéhez. on_stats egy hívható elem, amely a következő módon hívható meg amikor egy kezelő befejezte a kérés elküldését. A visszahívás meghívásra kerül a kérésről, a kapott válaszról, illetve az átviteli statisztikákról szóló hibáról, illetve a felmerült hibáról. Az adatok között szerepel a teljes időigény. a kérés elküldésére fordított idő.

Típusok
  • callable
Állandó

GuzzleHttp\RequestOptions::ON_STATS

A hívható objektum egy GuzzleHttp\TransferStats objektumot fogad el.

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

Összefoglaló

Meghatároz egy függvényt, amelyet akkor kell meghívni, amikor az átvitel előrehalad.

Típusok
  • callable
Alapértelmezett

Nincs

Állandó

GuzzleHttp\RequestOptions::PROGRESS

A függvény a következő pozicionális argumentumokat fogadja el:

  • a várhatóan letöltendő bájtok teljes száma, nulla, ha ismeretlen.
  • az eddig letöltött bájtok száma
  • a feltöltendő bájtok várható teljes száma
  • az eddig feltöltött bájtok száma
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Összefoglaló

Adjon át egy karakterláncot a HTTP proxy megadásához, vagy egy tömböt a HTTP proxy megadásához. különböző proxykat különböző protokollokhoz.

Típusok
  • string
  • array
Alapértelmezett

Nincs

Állandó

GuzzleHttp\RequestOptions::PROXY

Adjon át egy karakterláncot az összes protokollhoz tartozó proxy megadásához.

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

Adjon át egy asszociatív tömböt a HTTP proxyk megadásához bizonyos URI sémákhoz. (pl. "http", "https"). Adjon meg egy no kulcs-érték párost, hogy megadhassa a olyan állomásnevek listáját, amelyekre nem kell proxyt küldeni.

Megjegyzés:

A Guzzle automatikusan feltölti ezt az értéket a környezetének NO_PROXY környezeti változóval. Ha azonban egy proxy kérési opciót, az Ön feladata, hogy megadja a no értéket, amelyet a no-ból elemez. a NO_PROXY környezeti változóból. (pl. 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
    ]
]);

Megjegyzés:

Megadhat olyan proxy URL-címeket, amelyek tartalmaznak egy sémát, felhasználónevet és jelszót. Például "http://username:[email protected]:10".

query

Összefoglaló

A lekérdezési karakterlánc értékeinek asszociatív tömbje vagy a hozzáadandó lekérdezési karakterlánc. a kéréshez

Típusok
  • array
  • string
Alapértelmezett

Nincs

Állandó

GuzzleHttp\RequestOptions::QUERY

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

A query opcióban megadott lekérdezési karakterláncok felülírják a kérés URI-jában megadott összes lekérdezési karakterlánc értékét.

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

read_timeout

Összefoglaló
A streaming test olvasásakor használandó időkorlátot leíró lebegő érték.
Típusok
float
Alapértelmezett
Alapértelmezés szerint a default_socket_timeout PHP ini beállítás értéke.
Állandó
GuzzleHttp\RequestOptions::READ_TIMEOUT

Az időkorlát a streamelt test egyes olvasási műveleteire vonatkozik (ha a stream opció engedélyezve van).

$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

Összefoglaló

Megadja, hogy a válasz teste hova kerüljön elmentésre.

Típusok
  • string (fájl elérési útja a lemezen)
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Alapértelmezett

PHP temp stream

Állandó

GuzzleHttp\RequestOptions::SINK

Adjon át egy karakterláncot a választest tartalmát tároló fájl elérési útvonalának megadásához:

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

A fopen() által visszaadott erőforrás átadása a válasz PHP folyamba írásához:

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

Adjon át egy Psr\Http\Message\StreamInterface objektumot a válasz testének egy nyitott PSR-7 folyamba történő továbbításához.

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

Megjegyzés:

A save_to kérési opciót már nem használjuk, és a sink kérési opció javára. A save_to opció biztosítása mostantól egy alias a sink opciónak.

ssl_key

Összefoglaló

Adja meg a privát SSL-kulcsot tartalmazó fájl elérési útvonalát PEM formátumban. formátumban. Ha jelszóra van szükség, akkor az elérési utat tartalmazó tömböt kell megadni. az SSL-kulcs elérési útját az első tömbelemben, majd a szükséges jelszót. a tanúsítványhoz szükséges jelszó a második elemben.

Típusok
  • string
  • array
Alapértelmezett

Nincs

Állandó

GuzzleHttp\RequestOptions::SSL_KEY

Megjegyzés:

ssl_key a HTTP-kezelők valósítják meg. Ez jelenleg csak a cURL kezelő támogatja, de lehet, hogy más, harmadik fél által készített kezelők.

stream

Összefoglaló
Állítsa be true értékre, hogy a választ ne töltse le az egészet, hanem streamelje. előre.
Típusok
bool
Alapértelmezett
false
Állandó
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);
}

Megjegyzés:

A streaming válaszok támogatását a HTTP kezelőnek kell megvalósítania, amelyet a kliens által használt kezelő. Ezt az opciót nem minden HTTP-kezelő támogatja, de a a válaszobjektum interfésze ugyanaz marad, függetlenül attól, hogy a támogatja-e a kezelő.

szinkron

Összefoglaló
Ha true értékre állítod, akkor tájékoztatod a HTTP-kezelőket, hogy várni kívánsz a válaszra. Ez hasznos lehet az optimalizáláshoz.
Típusok
bool
Alapértelmezett
nincs
Állandó
GuzzleHttp\RequestOptions::SYNCHRONOUS

ellenőrizze

Összefoglaló

Leírja az SSL-tanúsítvány ellenőrzésének viselkedését egy kérésnél.

  • A true értékre állítva engedélyezi az SSL-tanúsítvány ellenőrzését, és használja az alapértelmezett CA-csomagot, amelyet az operációs rendszer biztosít.
  • Állítsa false értékre a tanúsítványellenőrzés kikapcsolásához (ez nem biztonságos!)
  • A hitelesítésszolgáltatói csomag elérési útvonalának megadása az ellenőrzés engedélyezéséhez. egy egyéni tanúsítvány használatával.
Típusok
  • bool
  • string
Alapértelmezett

true

Állandó

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

Ha nincs szüksége konkrét tanúsítványcsomagra, akkor a Mozilla biztosít egy általánosan használt hitelesítésszolgáltatói csomagot, amely letölthető innen (amelyet a cURL karbantartója biztosít). Ha már van egy CA-csomag elérhető a lemezen van, beállíthatja az "openssl.cafile" PHP ini beállításban, hogy az elérési útvonalra mutasson, ahol a a fájlra, így elhagyhatja a "verify" kérési opciót. További részletek a SSL-tanúsítványokról a cURL weboldal.

timeout

Összefoglaló
A kérés teljes időkorlátját leíró változó másodpercben. Használja 0 a korlátlan várakozáshoz (az alapértelmezett viselkedés).
Típusok
float
Alapértelmezett
0
Állandó
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

Összefoglaló
A kéréshez használandó protokoll verziója.
Típusok
string, float
Alapértelmezett
1.1
Állandó
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);