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']);
Leírja a kérés átirányítási viselkedését
[
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
'track_redirects' => false
]
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.
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.
Nincs
GuzzleHttp\RequestOptions::AUTH
A beépített hitelesítési típusok a következők:
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']]);
$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.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Megjegyzés:
Ez jelenleg csak a cURL kezelő használata esetén támogatott.
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
fopen()
resourcePsr\Http\Message\StreamInterface
Nincs
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.
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.
Nincs
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
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.
0
értéket a határozatlan ideig tartó várakozáshoz (ez az alapértelmezett viselkedés).0
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ő.
Á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
fopen()
resourceNincs
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
Annak megadása, hogy a Content-Encoding
válaszok (gzip,
deflate stb.) automatikusan dekódolásra kerüljenek
true
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']);
A kérés elküldése előtt késleltetendő milliszekundumok száma.
null
GuzzleHttp\RequestOptions::DELAY
Az "Expect: 100-Continue" fejléc viselkedését szabályozza.
1048576
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.
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.
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.
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']]);
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.true
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.
Nemzetközi domain név (IDN) támogatás (alapértelmezés szerint engedélyezve, ha
intl
kiterjesztés elérhető)
true
ha intl
kiterjesztés elérhető (és az ICU könyvtár 4.6+ PHP 7.2+ esetén), false
egyébként
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
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.json_encode()
függvényével lehet kezelni.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.
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ő nevetartalom
: (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.
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
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
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ő.
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());
}
}
]);
Meghatároz egy függvényt, amelyet akkor kell meghívni, amikor az átvitel előrehalad.
Nincs
GuzzleHttp\RequestOptions::PROGRESS
A függvény a következő pozicionális argumentumokat fogadja el:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
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.
Nincs
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"
.
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
Nincs
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']]);
default_socket_timeout
PHP ini beállítás értéke.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());
Megadja, hogy a válasz teste hova kerüljön elmentésre.
fopen()
resourcePsr\Http\Message\StreamInterface
PHP temp stream
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.
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.
Nincs
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.
true
értékre, hogy a választ ne töltse le az egészet, hanem streamelje.
előre.false
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ő.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Leírja az SSL-tanúsítvány ellenőrzésének viselkedését egy kérésnél.
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.false
értékre a tanúsítványellenőrzés kikapcsolásához (ez nem biztonságos!)true
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.
0
a korlátlan várakozáshoz (az alapértelmezett viselkedés).0
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'
1.1
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);