Kliento sukurtas ir perduotas užklausas galite pritaikyti naudodami užklausų parinktis. Užklausos parinktys valdo įvairius užklausos aspektus įskaitant antraštes, užklausos eilutės parametrus, laiko limito nustatymus, užklausos teksto užklausą ir dar daugiau.
Visuose šiuose pavyzdžiuose naudojamas šis klientas:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Aprašoma užklausos nukreipimo elgsena
307847298983429311951
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
'track_redirects' => false
]
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS
Nustatykite į false
, kad išjungtumėte nukreipimus.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Nustatykite į true
(numatytasis nustatymas), kad įjungtumėte įprastus nukreipimus, kurių maksimalus skaičius yra 5.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
Taip pat galite perduoti asocijuotą masyvą, kuriame yra šios rakto ir vertės poros:
max: (int, numatytoji reikšmė=5) didžiausias leistinas nukreipimų skaičius.
griežtas: (bool, numatytasis=false) Nustatykite true, jei norite naudoti griežtus nukreipimus. Griežtas RFC reikalavimus atitinkantis nukreipimas reiškia, kad POST nukreipimo užklausos siunčiamos kaip POST užklausos, o ne tai, ką daro dauguma naršyklių, t. y. nukreipia POST užklausas su GET užklausomis.
referer: (bool, numatytasis=false) Nustatykite true, kad būtų galima pridėti refererį antraštę nukreipiant.
protokolai: (masyvas, numatytasis=['http', 'https']) Nurodyta, kurie protokolai yra leidžiami nukreipimo užklausoms.
on_redirect: (calllable) PHP calllable, kuris iškviečiamas, kai atliekamas nukreipimas susiduriama su peradresavimu. Callable iškviečiamas su pradine užklausa ir gautu nukreipimo atsakymu. Bet kokia grąžinimo reikšmė iš on_redirect funkcija ignoruojama.
Track_redirects: (bool) Kai nustatyta į true
, kiekvienas nukreiptas URI ir būsena
kodas bus stebimas X-Guzzle-Redirect-History
ir
X-Guzzle-Redirect-Status-History
antraštės. Visi URI ir
būsenos kodai bus saugomi tokia tvarka, kokia buvo rasti nukreipimai.
Pastaba: Sekant nukreipimus, X-Guzzle-Redirect-History
antraštė
neįtrauks pradinės užklausos URI ir X-Guzzle-Redirect-Status-History
antraštė neįtrauks galutinio būsenos kodo.
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...
Įspėjimas
Ši parinktis turi poveikį tik tuo atveju, jei tvarkyklė turi
GuzzleHttp\Middleware::redirect
tarpinę programinę įrangą. Ši tarpinė programinė įranga pridedama
pagal numatytuosius nustatymus, kai klientas sukuriamas be tvarkyklės, ir pridedama
pagal numatytuosius nustatymus, kai tvarkiklis kuriamas naudojant GuzzleHttp\HandlerStack::create
.
Pastaba
Ši parinktis neturi jokio poveikio, kai užklausos atliekamos naudojant GuzzleHttp\Client::sendRequest()
. Siekiant laikytis PSR-18 reikalavimų, bet koks nukreipimo atsakymas grąžinamas toks, koks yra.
Perduokite HTTP autentifikavimo parametrų masyvą, kuris bus naudojamas su
užklausą. Masyve turi būti vartotojo vardas indekse 3078472989834293119510], slaptažodis indekse
indeksas [1], ir pasirinktinai galite nurodyti integruotą autentifikavimo tipą
index [2]. Perduokite null
, kad išjungtumėte autentifikavimą užklausai
Nėra
GuzzleHttp\RequestOptions::AUTH
Įdiegti šie autentifikavimo tipai:
Authorization
antraštėje (numatytasis nustatymas, naudojamas, jei jo nėra
nurodyta).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Pastaba
Šiuo metu tai palaikoma tik naudojant cURL tvarkyklę, tačiau sukurti pakaitalą, kurį būtų galima naudoti su bet kuriuo HTTP tvarkytuvu. planuojama.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Pastaba
Šiuo metu tai palaikoma tik naudojant cURL tvarkyklę.
Parinktis body
naudojama esybės kūnui valdyti.
PUT, POST, PATCH).
fopen()
resursasPsr\Http\Message\StreamInterface
Nėra
GuzzleHttp\RequestOptions::BODY
Šį nustatymą galima nustatyti į bet kurį iš šių tipų:
eilutė
// Galite siųsti užklausas, kuriose kaip pranešimo tekstas naudojama eilutė.
$client->request('PUT', '/put', 307847298983429311951'body' => 'foo']);
išteklius, grąžintas iš fopen()
// Galite siųsti užklausas, kurių kūne naudojamas srauto išteklius.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource]);
Psr\Http\Message\StreamInterface
// Galite siųsti užklausas, kurių kūne naudojamas "Guzzle" srauto objektas
$stream = GuzzleHttp\Psr7\Utils::streamFor('turinys...');
$client->request('POST', '/post', 307847298983429311951'body' => $stream]);
Pastaba
Šios parinkties negalima naudoti su form_params
, multipart
arba json
.
Nustatykite į eilutę, kad nurodytumėte kelią iki failo, kuriame yra PEM suformatuotą kliento pusės sertifikatą. Jei reikalingas slaptažodis, tada nustatykite į masyvą, kurio pirmajame masyvo elemente yra kelias į PEM failą po kurio antrajame masyvo elemente pateikiamas sertifikatui reikalingas slaptažodis elementas.
Nėra
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Slapukų parinktį turite nurodyti kaip GuzzleHttp\Cookie\CookieJarInterface
arba false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Įspėjimas
Ši parinktis turi poveikį tik tuo atveju, jei tvarkyklė turi
GuzzleHttp\Middleware::cookies
tarpinę programinę įrangą. Ši tarpinė programinė įranga pridedama
pagal numatytuosius nustatymus, kai klientas sukuriamas be tvarkyklės, ir pridedama
pagal numatytuosius nustatymus, kai tvarkiklis kuriamas naudojant GuzzleHttp\default_handler
.
Patarimas
Kurdami klientą galite nustatyti numatytąją slapukų parinktį true
kad būtų naudojama bendra slapukų sesija, susieta su klientu.
0
, jei norite laukti neribotą laiką (numatytoji elgsena).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]);
Pastaba
Šį nustatymą turi palaikyti užklausai siųsti naudojama HTTP tvarkyklė.
connect_timeout
šiuo metu palaiko tik integruota cURL
tvarkyklė.
Nustatyti į true
arba nustatyti į PHP srautą, grąžinamą fopen()
į
įjungti derinimo išvestį su tvarkykle, naudojama užklausai siųsti. Pavyzdžiui,
kai užklausoms perduoti naudojamas cURL, cURL verbis CURLOPT_VERBOSE
bus išsiųstas. Naudojant PHP srauto apvyniotuvą, srauto apvyniotuvas
bus siunčiami pranešimai. Jei nustatyta reikšmė true, išvestis rašoma į
PHP STDOUT. Jei pateikiamas PHP srautas, išvestis rašoma į srautą.
fopen()
resursasNėra
GuzzleHttp\RequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
Paleidus pirmiau pateiktą pavyzdį, gautumėte tokį rezultatą:
* 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
Nurodykite, ar Content-Encoding
atsakymai (gzip,
deflate ir t. t.) yra automatiškai dekoduojami.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Šią parinktį galima naudoti norint valdyti, kaip turinio koduotus atsakymo kūnus
tvarkomi atsakymai. Pagal numatytuosius nustatymus decode_content
nustatyta reikšmė true, t. y. bet koks gzipped
arba deflated atsakymą "Guzzle" iššifruos.
Nustačius false
, atsakymo kūnas niekada neiššifruojamas, t. y. baitai perduodami tvarkytojui nepakeisti.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Nustačius eilutę, atsakymo baitai iššifruojami ir eilutės reikšmė
pateikta decode_content
parinkčiai, perduodama kaip Accept-Encoding
.
užklausos antraštė.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Milisekundžių skaičius, kurį reikia atidėti prieš siunčiant užklausą.
null
GuzzleHttp\RequestOptions::DELAY
Valdo antraštės "Expect: 100-Continue" elgseną.
1048576
GuzzleHttp\RequestOptions::EXPECT
Nustatykite į true
, kad įjungtumėte visų užklausų antraštę "Expect: 100-Continue".
kurios siunčia kūną. Nustatykite į false
, kad išjungtumėte "Expect: 100-Continue".
antraštę visoms užklausoms. Nustatykite į skaičių, kad naudingosios apkrovos dydis būtų
būtų didesnis už šį skaičių, kad būtų išsiųsta "Expect" antraštė. Nustatymas į a
skaičių, bus siunčiama "Expect" antraštė visoms užklausoms, kurių dydis
krovinio negalima nustatyti arba kai krovinio negalima atsukti.
Pagal numatytuosius nustatymus "Guzzle" prideda antraštę "Expect: 100-Continue", kai užklausos kūno dydis yra didesnis nei 1 MB ir užklausoje naudojamas HTTP/1.1.
Pastaba
Ši parinktis galioja tik naudojant HTTP/1.1. HTTP/1.0 ir HTTP/2.0 protokolai nepalaiko antraštės "Expect: 100-Continue". "Expect: 100-Continue" tvarkymo palaikymas turi būti įgyvendinti kliento naudojamuose "Guzzle" HTTP tvarkytuvuose.
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']);
Pastaba
Šį nustatymą turi palaikyti užklausai siųsti naudojama HTTP tvarkyklė.
force_ip_resolve
šiuo metu palaiko tik integruotas cURL
ir srauto tvarkyklės.
GuzzleHttp\RequestOptions::FORM_PARAMS
Asocijuotas formos laukų pavadinimų ir reikšmių masyvas, kuriame kiekviena reikšmė yra eilutė arba eilučių masyvas. Nustato Content-Type antraštę į application/x-www-form-urlencoded, kai dar nėra Content-Type antraštės nėra.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Pastaba
form_params
negalima naudoti su multipart
parinktimi. Turėsite naudoti
vieną arba kitą. Naudokite form_params
application/x-www-form-urlencoded
ir multipart
užklausoms multipart/form-data
.
Šios parinkties negalima naudoti su body
, multipart
arba 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']
]
]);
Kuriant klientą antraštės gali būti pridėtos kaip numatytoji parinktis. Kai antraštės
naudojamos kaip numatytoji parinktis, jos taikomos tik tada, jei kuriama užklausa
dar nėra konkrečios antraštės. Tai taikoma ir užklausoms, perduotoms
send()
ir sendAsync()
metodais, ir užklausas
sukurtus kliento (pavyzdžiui, request()
ir 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
, kad išjungtumėte HTTP protokolo išimčių išmetimą.
klaidų (t. y. 4xx ir 5xx atsakymų). Pagal numatytuosius nustatymus išimtys išmetamos, kai
susiduriama su HTTP protokolo klaidomis.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
Įspėjimas
Ši parinktis turi poveikį tik tuo atveju, jei tvarkyklė turi
GuzzleHttp\Middleware::httpErrors
tarpinę programinę įrangą. Ši tarpinė programinė įranga pridedama
pagal numatytuosius nustatymus, kai klientas sukuriamas be tvarkyklės, ir pridedama
GuzzleHttp\default_handler
.
Tarptautinių domenų vardų (IDN) palaikymas (įjungtas pagal numatytuosius nustatymus, jei
intl
plėtinys yra)
true
jei intl
plėtinys yra (ir ICU biblioteka yra 4.6+ PHP 7.2+), false
kitaip
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
Įjungia / išjungia IDN palaikymą, taip pat gali būti naudojamas tiksliam valdymui derinant
IDNA_* konstantas (išskyrus IDNA_ERROR_*), žr. $options
parametrą
idn_to_ascii()
Išsamesnės informacijos rasite dokumentacijoje.
json
parinktis naudojama norint lengvai įkelti JSON koduotus duomenis kaip
užklausos kūną. Turinio tipo antraštė application/json
bus
pridėta, jei pranešime dar nėra Content-Type antraštės.json_encode()
funkcija.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Štai pavyzdys, kaip naudojant tap
tarpinę programinę įrangą matyti, kokia užklausa siunčiama per laidą.
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)
]);
Pastaba
Ši užklausos parinktis nepalaiko Content-Type antraštės pritaikymo
arba bet kurios PHP funkcijos json_encode() parinktys.
funkcijos. Jei norite pritaikyti šiuos nustatymus, turite perduoti
JSON užkoduotus duomenis į užklausą įtraukti patys, naudodami body
užklausos
parinktį ir turite nurodyti teisingą Content-Type antraštę naudodami
headers
užklausos parinktį.
Šios parinkties negalima naudoti su body
, form_params
arba multipart
.
GuzzleHttp\RequestOptions::MULTIPART
multipart
reikšmė yra asocijuotųjų masyvų masyvas, kuriame yra šios rakto ir vertės poros:
pavadinimas
: (eilutė, privaloma) formos lauko pavadinimasturinys
: (StreamInterface/resource/string, privaloma) Duomenys, kuriuos reikia naudoti
formos elemente.antraštės
: (masyvas) Neprivalomas asocijuotas pasirinktinių antraščių masyvas, naudojamas su
formos elementą.filename
: (eilutė) Neprivaloma eilutė, kuri siunčiama kaip failo pavadinimas dalyje.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'
],
]
]);
Pastaba
multipart
negalima naudoti su form_params
parinktimi. Jums reikės
naudoti vieną arba kitą. Naudokite form_params
, jei norite naudoti application/x-www-form-urlencoded
.
ir multipart
užklausoms multipart/form-data
.
Šios parinkties negalima naudoti su body
, form_params
arba json
.
Iškviečiama, kai atsakymo HTTP antraštės turi gautas, bet dar nepradėtas siųsti atsakymo turinys
GuzzleHttp\RequestOptions::ON_HEADERS
Iškviečiamoji funkcija priima Psr\Http\Message\ResponseInterface
objektą. Jei išimtis
išmetama, tuomet su atsakymu susijęs pažadas bus
atmetamas su GuzzleHttp\Exception\RequestException
, kuris apima
išmesta išimtis.
Prieš įrašant duomenis į kriauklę gali prireikti sužinoti, kokios antraštės ir būsenos kodai buvo gauti.
// 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!');
}
}
]);
Pastaba
Rašant HTTP tvarkykles turi būti iškviečiama on_headers
funkcija
prieš įrašant duomenis į atsakymo kūną.
on_stats
leidžia gauti prieigą prie perdavimo statistikos apie
užklausą ir pasiekti žemesnio lygio perdavimo informaciją apie tvarkytoją
susietą su jūsų klientu. on_stats
yra iškviečiama funkcija, kuri iškviečiama
kai tvarkyklė baigia siųsti užklausą. Grįžtamasis skambutis iškviečiamas
su perdavimo statistika apie užklausą, gautą atsakymą arba
įvykusią klaidą. Į šiuos duomenis įeina bendras laikas, per kurį
siųsti užklausą.
GuzzleHttp\RequestOptions::ON_STATS
Iškviečiamoji komanda priima GuzzleHttp\TransferStats
objektą.
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());
}
}
]);
Apibrėžia funkciją, kuri iškviečiama, kai pasiekiama perdavimo pažanga.
Nėra
GuzzleHttp\RequestOptions::PROGRESS
Funkcijai priimami šie poziciniai argumentai:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Perduokite eilutę, kad nurodytumėte HTTP tarpinį serverį, arba masyvą, kad nurodytumėte skirtingus tarpinius serverius skirtingiems protokolams.
Nėra
GuzzleHttp\RequestOptions::PROXY
Perduokite eilutę, kad nurodytumėte visų protokolų tarpininką.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Perduokite asocijuotą masyvą, kad nurodytumėte konkrečių URI schemų HTTP tarpininkus
(t. y. "http", "https"). Pateikite no
rakto ir vertės porą, kad pateiktumėte sąrašą
prievadų vardų, į kuriuos neturėtų būti nukreiptas tarpinis ryšys.
Pastaba
"Guzzle" automatiškai užpildys šią vertę jūsų aplinkos
NO_PROXY
aplinkos kintamuoju. Tačiau, kai pateikiamas proxy
užklausos parinktį, turite pateikti no
reikšmę, parsisiųstą iš
NO_PROXY
aplinkos kintamojo
(pvz., 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
]
]);
Pastaba
Galite pateikti tarpinių serverių URL, kuriuose yra schema, vartotojo vardas ir slaptažodis.
Pavyzdžiui, "http://username:[email protected]:10"
.
Asocijuotas užklausos eilutės reikšmių masyvas arba užklausos eilutė, prie kurios reikia pridėti užklausą.
Nėra
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Užklausų eilutės, nurodytos parinktyje query
, pakeis visas užklausos eilutės reikšmes, pateiktas užklausos URI.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP ini nustatymas.GuzzleHttp\RequestOptions::READ_TIMEOUT
Laiko limitas taikomas atskiroms srautinio kūno skaitymo operacijoms (kai įjungta srautas
parinktis).
$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());
Nurodykite, kur bus išsaugotas atsakymo tekstas.
fopen()
resursasPsr\Http\Message\StreamInterface
PHP laikinasis srautas
GuzzleHttp\RequestOptions::SINK
Perduokite eilutę, nurodančią kelią iki failo, kuriame bus saugomas atsakymo kūno turinys:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Perduokite iš fopen()
grąžintą išteklių, kad atsakymą įrašytumėte į PHP srautą:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Perduokite Psr\Http\Message\StreamInterface
objektą atsakymo kūnui transliuoti į atvirą PSR-7 srautą.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Pastaba
save_to
užklausos parinktis buvo panaikinta ir pakeista į
sink
užklausos parinktį. Dabar save_to
parinktis yra slapyvardis
sink
.
Nurodykite kelią iki failo, kuriame yra privatus SSL raktas PEM formatu. formatu. Jei reikalingas slaptažodis, tada nustatykite į masyvą, kuriame yra kelias į SSL raktą pirmajame masyvo elemente, o po jo - reikalaujamas slaptažodis antrajame elemente įrašytas slaptažodis
Nėra
GuzzleHttp\RequestOptions::SSL_KEY
Pastaba
ssl_key
įgyvendina HTTP tvarkyklės. Šiuo metu tai yra tik
palaikomas cURL tvarkyklės, bet gali būti palaikomas ir kitų trečiųjų šalių tvarkyklių.
tvarkyklės.
true
, kad atsakymą būtų galima transliuoti, o ne atsisiųsti visą.
iš anksto.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);
}
Pastaba
Srautinio atsakymo palaikymas turi būti įdiegtas HTTP tvarkyklėje, kurią naudoja klientas. Šią parinktį gali palaikyti ne kiekvienas HTTP tvarkytuvas, tačiau atsakymo objekto sąsaja išlieka tokia pati, nepriklausomai nuo to, ar ar tvarkyklė ją palaiko.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Apibūdina užklausos SSL sertifikato tikrinimo elgseną.
true
, kad įjungtumėte SSL sertifikato tikrinimą ir naudotumėte numatytąjį
CA paketą, kurį pateikia operacinė sistema.false
, kad išjungtumėte sertifikato tikrinimą (tai nesaugu!)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]);
Jei jums nereikia konkretaus sertifikatų rinkinio, "Mozilla" pateikia dažniausiai naudojamą CA paketą, kurį galima atsisiųsti čia (pateikė cURL prižiūrėtojas). Kai tik turėsite CA paketą galite nustatyti PHP ini nustatymą "openssl.cafile", kad jis rodytų kelią į failą ir galėsite nepateikti užklausos "patikrinti" parinkties. Daugiau informacijos apie SSL sertifikatus galima rasti cURL svetainėje.
0
jei norite laukti neribotą laiką (numatytoji elgsena).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]);