Požadavky vytvořené a přenesené klientem můžete přizpůsobit pomocí. možností požadavků. Možnosti požadavku řídí různé aspekty požadavku včetně záhlaví, parametrů řetězce dotazu, nastavení časového limitu, těla požadavku požadavku a mnoho dalšího.
Všechny následující příklady používají následujícího klienta:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Popisuje chování přesměrování požadavku
[
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
'track_redirects' => false
]
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS
Nastavte na false
pro vypnutí přesměrování.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Nastavením na true
(výchozí nastavení) povolíte normální přesměrování s maximálním počtem 5 přesměrování.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
Můžete také předat asociativní pole obsahující následující dvojice klíč-hodnota:
max: (int, výchozí=5) maximální počet povolených přesměrování.
strict: (bool, výchozí=false) Nastavte na true pro použití striktního přesměrování. Striktní přesměrování v souladu s RFC znamená, že požadavky na přesměrování POST jsou odesílány jako POST oproti tomu, co dělá většina prohlížečů, tedy přesměrování požadavků POST s požadavky GET.
referer: (bool, výchozí=false) Nastavte na true, chcete-li povolit přidání refereru hlavičku při přesměrování.
protokoly: (pole, výchozí=['http', 'https']) Určeno, které protokoly jsou povoleny pro požadavky na přesměrování.
on_redirect: (callable) PHP callable, který je vyvolán při přesměrování se vyskytne přesměrování. Callable je vyvolán s původním požadavkem a s parametrem obdrženou odpovědí na přesměrování. Jakákoli návratová hodnota z on_redirect je ignorována.
track_redirects: (bool) Pokud je nastaveno na true
, každý přesměrovaný URI a status
kód bude sledován v X-Guzzle-Redirect-History
a
X-Guzzle-Redirect-Status-History
hlavičky. Všechny URI a
budou uloženy v pořadí, v jakém došlo k přesměrování.
Poznámka: Při sledování přesměrování bude X-Guzzle-Redirect-History
hlavička
vyloučí URI původního požadavku a X-Guzzle-Redirect-Status-History
.
hlavička vyloučí konečný stavový kód.
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...
Varování
Tato možnost má vliv pouze v případě, že vaše obslužná rutina má příznak
GuzzleHttp\Middleware::redirect
middleware. Tento middleware se přidává
ve výchozím nastavení, když je klient vytvořen bez handleru, a je přidán pomocí
GuzzleHttp\HandlerStack::create
.
Poznámka
Tato volba nemá žádný vliv při zadávání požadavků pomocí GuzzleHttp\Client::sendRequest()
. Aby byla zachována shoda s PSR-18, je jakákoli odpověď na přesměrování vrácena tak, jak je.
Předejte pole parametrů ověřování HTTP, které se použijí s příkazem
požadavku. Toto pole musí obsahovat uživatelské jméno v indexu [0], heslo v indexu
indexu [1] a volitelně můžete zadat vestavěný typ ověřování v položce
index [2]. Předejte null
pro vypnutí ověřování pro požadavek
Žádné
GuzzleHttp\RequestOptions::AUTH
Vestavěné typy ověřování jsou následující:
Autorizace
(výchozí nastavení se použije, pokud není zadána žádná
zadáno).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Poznámka
To je v současné době podporováno pouze při použití obslužného programu cURL, ale vytvoření náhrady, kterou lze použít s jakoukoli obslužnou rutinou HTTP, je plánuje.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Poznámka
To je v současné době podporováno pouze při použití obslužné rutiny cURL.
Volba body
slouží k ovládání těla entity.
(např. PUT, POST, PATCH)
fopen()
resourcePsr\Http\Message\StreamInterface
Žádné
GuzzleHttp\RequestOptions::BODY
Toto nastavení lze nastavit na některý z následujících typů:
řetězec
// Můžete odesílat požadavky, které jako tělo zprávy používají řetězec.
$client->request('PUT', '/put', ['body' => 'foo']);
zdroj vrácený z fopen()
// Můžete odesílat požadavky, které jako tělo používají proudový zdroj.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource]);
Psr\Http\Message\StreamInterface
// Můžete odesílat požadavky, které používají objekt Guzzle stream jako tělo.
$stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
$client->request('POST', '/post', ['body' => $stream]);
Poznámka
Tuto možnost nelze použít s form_params
, multipart
nebo json
.
Nastavte na řetězec pro zadání cesty k souboru obsahujícímu PEM. ve formátu PEM na straně klienta. Pokud je vyžadováno heslo, pak nastavte na pole obsahující cestu k souboru PEM v prvním prvku pole. následované heslem požadovaným pro certifikát v druhém poli
Žádné
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Volbu cookies musíte zadat jako GuzzleHttp\Cookie\CookieJarInterface
nebo false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Varování
Tato možnost má vliv pouze v případě, že vaše obslužná rutina má příznak
GuzzleHttp\Middleware::cookies
middleware. Tento middleware je přidán
ve výchozím nastavení, když je klient vytvořen bez obslužného programu, a je přidán pomocí
GuzzleHttp\default_handler
.
Tip
Při vytváření klienta můžete nastavit výchozí možnost cookie na true
abyste použili sdílenou relaci souborů cookie přidruženou ke klientovi.
0
pro nekonečné čekání (výchozí chování).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]);
Poznámka
Toto nastavení musí být podporováno obslužným programem HTTP, který se používá k odeslání požadavku.
connect_timeout
je v současné době podporováno pouze vestavěným cURL
handler.
Nastavit na true
nebo nastavit na proud PHP vrácený pomocí fopen()
to
povolit výstup ladění pomocí obslužného programu použitého k odeslání požadavku. Například,
při použití cURL k přenosu požadavků, verbose cURL CURLOPT_VERBOSE
.
bude vyzařováno. Při použití obalu proudu PHP, obalu proudu
budou emitována oznámení. Pokud je nastaveno na hodnotu true, výstup se zapíše do adresáře
STDOUT jazyka PHP. Pokud je zadán proud PHP, výstup se vypíše do tohoto proudu.
fopen()
resourceŽádné
GuzzleHttp\RequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
Spuštění výše uvedeného příkladu by vedlo k následujícímu výsledku:
* 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
Určete, zda Content-Encoding
odpovědi (gzip,
deflate atd.) automaticky dekódovány.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Tuto možnost lze použít k řízení způsobu, jakým jsou těla odpovědí s kódovaným obsahem
zpracovávány. Ve výchozím nastavení je decode_content
nastavena na hodnotu true, což znamená, že jakýkoli gzipovaný
nebo deflovanou odpověď Guzzle dekóduje.
Pokud je nastaveno na false
, tělo odpovědi není nikdy dekódováno, což znamená, že bajty projdou obslužným programem beze změny.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Při nastavení na řetězec se dekódují bajty odpovědi a hodnota řetězce.
poskytnutá možnosti decode_content
je předána jako Accept-Encoding
.
v hlavičce požadavku.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Počet milisekund zpoždění před odesláním požadavku.
null
GuzzleHttp\RequestOptions::DELAY
Ovládá chování záhlaví "Expect: 100-Continue".
1048576
GuzzleHttp\RequestOptions::EXPECT
Nastavte na true
pro povolení hlavičky "Expect: 100-Continue" pro všechny požadavky.
které odesílají tělo. Nastavením na hodnotu false
se hlavička "Expect: 100-Continue" zakáže.
hlavičku pro všechny požadavky. Nastavte na číslo, aby velikost užitečného zatížení musela být
být větší než toto číslo, aby bylo možné odeslat hlavičku Expect. Nastavení na hodnotu
bude odeslána hlavička Expect pro všechny požadavky, u kterých je velikost nákladu větší než číslo.
nelze určit nebo pokud tělo není možné přetočit.
Ve výchozím nastavení přidá Guzzle hlavičku "Expect: 100-Continue", pokud je velikost těla požadavku větší než 1 MB a požadavek používá protokol HTTP/1.1.
Poznámka
Tato možnost se projeví pouze při použití protokolu HTTP/1.1. HTTP/1.0 a HTTP/2.0 nepodporují hlavičku "Expect: 100-Continue". Podpora pro zpracování pracovního postupu "Expect: 100-Continue" musí být implementovat obsluhy HTTP Guzzle používané klientem.
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']);
Poznámka
Toto nastavení musí být podporováno obslužným programem HTTP, který se používá k odeslání požadavku.
force_ip_resolve
je v současné době podporováno pouze vestavěným cURL
a obslužnými programy stream.
GuzzleHttp\RequestOptions::FORM_PARAMS
Asociativní pole názvů polí formuláře k hodnotám, kde každá hodnota je řetězec nebo pole řetězců. Nastaví hlavičku Content-Type na hodnotu application/x-www-form-urlencoded, pokud již žádná hlavička Content-Type není. přítomna.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Poznámka
form_params
nelze použít s možností multipart
. Budete muset použít
jednu nebo druhou možnost. Použijte form_params
pro application/x-www-form-urlencoded
.
a multipart
pro multipart/form-data
požadavky.
Tuto možnost nelze použít s body
, multipart
nebo json
.
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']
]
]);
Záhlaví lze přidat jako výchozí možnosti při vytváření klienta. Když hlavičky
jsou použity jako výchozí volby, použijí se pouze tehdy, pokud je vytvářený požadavek
již neobsahuje konkrétní hlavičku. To zahrnuje jak požadavky předané
klientovi v metodách send()
a sendAsync()
, tak požadavky
vytvořené klientem (např. request()
a 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
pro zakázání vyhazování výjimek na protokolu HTTP.
(tj. odpovědi 4xx a 5xx). Ve výchozím nastavení jsou výjimky vyhazovány, když
Chyby protokolu HTTP.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
Varování
Tato možnost má vliv pouze v případě, že vaše obslužná rutina má příznak
GuzzleHttp\Middleware::httpErrors
middleware. Tento middleware je přidán
ve výchozím nastavení, když je klient vytvořen bez obslužného programu, a je přidán pomocí
GuzzleHttp\default_handler
.
Podpora internacionalizovaných doménových jmen (IDN) (ve výchozím nastavení povoleno, pokud
intl
je k dispozici rozšíření)
true
pokud je k dispozici intl
rozšíření (a knihovna ICU je 4.6+ pro PHP 7.2+), false
jinak
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
Zapíná/vypíná podporu IDN, lze také použít pro přesné ovládání kombinací
IDNA_* konstanty (kromě IDNA_ERROR_*), viz $options
parametr v sekci
idn_to_ascii().
v dokumentaci pro více informací.
json
slouží ke snadnému nahrání dat v kódování JSON jako
v těle požadavku. Hlavička Content-Type application/json
bude
přidána hlavička Content-Type, pokud již není ve zprávě přítomna.json_encode()
.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Zde je příklad použití middlewaru tap
pro zjištění, jaký požadavek je odeslán po drátě.
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)
]);
Poznámka
Tato možnost požadavku nepodporuje přizpůsobení hlavičky Content-Type.
ani žádnou z možností funkce json_encode() jazyka PHP.
funkce. Pokud potřebujete tato nastavení přizpůsobit, musíte předat funkci
JSON zakódovaná data do požadavku sami pomocí body
požadavku
a musíte zadat správnou hlavičku Content-Type pomocí příkazu
headers
možnost požadavku.
Tuto možnost nelze použít s body
, form_params
nebo multipart
.
GuzzleHttp\RequestOptions::MULTIPART
Hodnota multipart
je pole asociativních polí, z nichž každé obsahuje následující dvojice klíč-hodnota:
name
: (řetězec, povinné) název pole formulářeobsah
: (StreamInterface/resource/string, povinné) Data, která se mají použít v položce
prvku formuláře.headers
: (pole) Nepovinné asociativní pole vlastních záhlaví, které se použije s
prvkem formuláře.název souboru
: (string) Nepovinný řetězec, který se má poslat jako název souboru v části.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'
],
]
]);
Poznámka
multipart
nelze použít s možností form_params
. Budete muset
použít jednu nebo druhou možnost. Použijte form_params
pro application/x-www-form-urlencoded
.
a multipart
pro multipart/form-data
požadavky.
Tuto možnost nelze použít s body
, form_params
nebo json
.
Volání, které je vyvoláno, když hlavičky HTTP odpovědi mají. ale tělo se ještě nezačalo stahovat.
GuzzleHttp\RequestOptions::ON_HEADERS
Volání přijímá objekt Psr\Http\Message\ResponseInterface
. Pokud dojde k výjimce
je vyvolán voláním, pak slib spojený s odpovědí bude
odmítnuta s GuzzleHttp\Exception\RequestException
, který zabaluje
výjimku, která byla vyhozena.
Možná budete potřebovat vědět, jaké hlavičky a stavové kódy byly přijaty, než bude možné zapsat data do sink.
// 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!');
}
}
]);
Poznámka
Při psaní obslužných rutin HTTP je třeba vyvolat funkci on_headers
.
před zápisem dat do těla odpovědi.
on_stats
umožňuje získat přístup ke statistikám přenosu z
požadavku a přístup k podrobnostem o přenosu na nižší úrovni obsluhy.
spojeného s vaším klientem. on_stats
je volání, které je vyvoláno
když obslužná rutina dokončí odeslání požadavku. Zpětné volání je vyvoláno
se statistikami přenosu o požadavku, přijaté odpovědi nebo o tom, zda byl požadavek odeslán.
chybě, která se vyskytla. Součástí údajů je celkový čas potřebný k přenosu
k odeslání požadavku.
GuzzleHttp\RequestOptions::ON_STATS
Volání přijímá objekt GuzzleHttp\TransferStats
.
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());
}
}
]);
Definuje funkci, která se vyvolá při postupu přenosu.
Žádné
GuzzleHttp\RequestOptions::PROGRESS
Funkce přijímá následující poziční argumenty:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Předejte řetězec pro zadání proxy serveru HTTP nebo pole pro zadání. různé proxy pro různé protokoly.
Žádné
GuzzleHttp\RequestOptions::PROXY
Předejte řetězec pro zadání proxy pro všechny protokoly.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Předání asociativního pole pro zadání proxy serverů HTTP pro konkrétní schémata URI
(tj. "http", "https"). Předejte no
dvojici klíč-hodnota, která poskytne seznam
hostitelů, na které by se nemělo proxy serverovat.
Poznámka
Guzzle tuto hodnotu automaticky doplní hodnotou vašeho prostředí.
NO_PROXY
proměnnou prostředí. Při zadání proxy
možnost požadavku, je na vás, abyste uvedli hodnotu no
vyparsovanou z
NO_PROXY
proměnné prostředí.
(např. 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
]
]);
Poznámka
Můžete zadat adresy URL proxy serveru, které obsahují schéma, uživatelské jméno a heslo.
Například "http://username:[email protected]:10"
.
Asociativní pole hodnot řetězce dotazu nebo řetězce dotazu, do kterého se přidá požadavku.
Žádné
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Řetězce dotazů zadané v možnosti query přepíší všechny hodnoty řetězců dotazů zadané v URI požadavku.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP ini.GuzzleHttp\RequestOptions::READ_TIMEOUT
Časový limit se vztahuje na jednotlivé operace čtení na streamovaném těle (pokud je povolena volba stream
).
$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());
Určete, kam se uloží tělo odpovědi.
fopen()
zdrojPsr\Http\Message\StreamInterface
PHP temp stream
GuzzleHttp\RequestOptions::SINK
Předejte řetězec pro zadání cesty k souboru, do kterého bude uložen obsah těla odpovědi:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Předání zdroje vráceného z fopen()
pro zápis odpovědi do PHP streamu:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Předání objektu Psr\Http\Message\StreamInterface
pro streamování těla odpovědi do otevřeného streamu PSR-7.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Poznámka
Možnost požadavku save_to
byla zrušena ve prospěch možnosti
sink
možnost požadavku. Poskytování možnosti save_to
je nyní aliasem
sink
.
Zadejte cestu k souboru obsahujícímu soukromý klíč SSL ve formátu PEM. ve formátu PEM. Pokud je vyžadováno heslo, pak nastavte na pole obsahující cestu ke klíči SSL v prvním prvku pole, za kterým následuje požadované heslo. pro certifikát ve druhém prvku.
Žádné
GuzzleHttp\RequestOptions::SSL_KEY
Poznámka
ssl_key
je implementován obslužnými programy HTTP. V současné době je to pouze
obsluha cURL, ale může být podporována i jinými obsluhami třetích stran.
obslužných programů.
true
pro streamování odpovědi namísto jejího stažení.
předem.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);
}
Poznámka
Podpora streamování odpovědí musí být implementována obslužným programem HTTP používaným pomocí klient. Tato možnost nemusí být podporována každým HTTP handlerem, ale rozhraní objektu odpovědi zůstává stejné bez ohledu na to, zda se jedná o objekt je podporováno obslužným programem, nebo ne.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Popisuje chování SSL certifikátu při ověření požadavku.
true
, chcete-li povolit ověřování certifikátu SSL a použít výchozí hodnotu.
CA poskytované operačním systémem.false
pro vypnutí ověřování certifikátu (je to nezabezpečené!)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]);
Pokud nepotřebujete konkrétní balíček certifikátů, Mozilla poskytuje běžně používaný balík certifikačních autorit, který lze stáhnout zde (poskytnutý správcem cURL). Jakmile máte k dispozici svazek certifikačních autorit na adrese na disku, můžete nastavit nastavení PHP ini "openssl.cafile" tak, aby ukazovalo na cestu k souboru souboru, což vám umožní vynechat možnost požadavku "verify". Mnohem více podrobností o SSL certifikáty naleznete na stránkách webových stránkách cURL.
0
pro neomezené čekání (výchozí chování).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]);