Kliendi poolt loodud ja edastatud taotlusi saab kohandada, kasutades selleks request options. Taotluse valikud kontrollivad taotluse erinevaid aspekte sealhulgas päiseid, päringustringi parameetreid, aeglustuse seadistusi, päringu keha ja päringu sisu ja palju muud.
Kõik järgmised näited kasutavad järgmist klienti:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Kirjeldab taotluse ümbersuunamise käitumist
[
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
'track_redirects' => false
]
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS
Määrake false
, et keelata ümbersuunamised.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Määra true
(vaikimisi seade), et lubada tavalisi ümbersuunamisi, mille maksimaalne arv on 5 ümbersuunamist.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
Võite edastada ka assotsiatiivse massiivi, mis sisaldab järgmisi võtmeväärtuspaare:
max: (int, vaikimisi=5) maksimaalne lubatud ümbersuunamiste arv.
range: (bool, vaikimisi=false) Seadistada true, et kasutada range ümbersuunamisi. Ranged RFC nõuetele vastavad ümbersuunamised tähendavad, et POST ümbersuunamispäringud saadetakse kui POST päringutena vs. seda, mida enamik brausereid teeb, mis on POST päringute ümbersuunamine. GET-päringutega.
referer: (bool, vaikimisi=false) Seadistada true, et võimaldada Refereri lisamist. päise lisamist ümbersuunamisel.
protokollid: (array, default=['http', 'https']) Määratud, millised protokollid on on lubatud ümbersuunamise taotluste puhul
on_redirect: (callable) PHP callable, mis kutsutakse esile, kui toimub ümbersuunamine. tekib. Callable'i kutsutakse koos esialgse taotlusega ja redirect vastus, mis saadi. Iga on_redirect'i tagastusväärtus funktsiooni tagasisidet ei võeta arvesse.
track_redirects: (bool) Kui see on seatud true
, siis iga ümber suunatud URI ja status
kood jälgitakse X-Guzzle-Redirect-History
jaX-Guzzle-Redirect-History.
X-Guzzle-Redirect-Status-History
vastavalt. Kõik URI-d ja
olekukoodid salvestatakse järjekorras, milles ümbersuunamised toimusid.
Märkus: Ümbersuunamiste jälgimisel X-Guzzle-Redirect-History
päise X-Guzzle-Redirect-History kasutatakse
välja esialgse taotluse URI ja X-Guzzle-Redirect-Status-History
päis välistab lõpliku staatuskoodi.
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...
Hoiatus
See valik mõjutab ainult siis, kui teie käitlejal on käsurea
GuzzleHttp\Middleware::redirect
middleware. See middleware lisatakse
vaikimisi, kui klient luuakse ilma käitlejata, ja see lisatakse
vaikimisi, kui luuakse käsitseja GuzzleHttp\HandlerStack::create
abil.
Märkus
Sellel valikul ei ole mingit mõju, kui kasutate GuzzleHttp\Client::sendRequest()
päringute tegemisel. Selleks, et jääda PSR-18 nõuetele vastavaks, tagastatakse mis tahes ümbersuunamise vastus sellisena, nagu see on.
Andke üle HTTP autentimisparameetrite massiivi, mida kasutatakse koos funktsiooni
taotlusega. Massiiv peab sisaldama kasutajanime indeksis [0], salasõna indeksis
indeksis [1], ja valikuliselt võib anda sisseehitatud autentimistüübi sisse
index [2]. Andke null
, et keelata päringu autentimine.
Ei ole
GuzzleHttp\RequestOptions::AUTH
Sisseehitatud autentimistüübid on järgmised:
Authorization
päises (vaikimisi seade, mida kasutatakse, kui puudub
määratud).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Märkus
See on praegu toetatud ainult cURL-käsitleja kasutamisel, kuid asendaja loomine, mida saab kasutada mis tahes HTTP-käsitlejaga, on plaanis.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Märkus
See on praegu toetatud ainult cURL-käsitleja kasutamisel.
Valikut body
kasutatakse olemuse keha kontrollimiseks.
ümbritseva päringu (nt PUT, POST, PATCH)
fopen()
ressurssPsr\Http\Message\StreamInterface
Ei ole
GuzzleHttp\RequestOptions::BODY
Selle seadistuse saab määrata mis tahes järgmistele tüüpidele:
string
// Saate saata päringuid, mis kasutavad teate kehana stringi.
$client->request('PUT', '/put', ['body' => 'foo']);
ressurss, mis tagastatakse fopen()
// Saate saata päringuid, mis kasutavad voogressurssi kehana.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource]);
Psr\Http\Message\StreamInterface
// Saate saata päringuid, mis kasutavad kehana Guzzle'i voogobjekti.
$stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
$client->request('POST', '/post', ['body' => $stream]);
Märkus
Seda valikut ei saa kasutada koos form_params
, multipart
või json
.
Määra string, et määrata PEM-i sisaldava faili tee. vormindatud kliendipoolset sertifikaati. Kui nõutakse parooli, siis tuleb määrata massiivi, mis sisaldab PEM-faili teed esimeses massiivielemendis. millele järgneb sertifikaadi jaoks nõutav parool teises massiivis. element.
Ei ole
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Te peate määrama küpsiste valiku GuzzleHttp\Cookie\CookieJarInterface
või false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Hoiatus
See valik mõjutab ainult siis, kui teie käitlejal on käsurea
GuzzleHttp\Middleware::cookies
middleware. See middleware lisatakse
vaikimisi, kui klient luuakse ilma käitlejata, ja see lisatakse
vaikimisi, kui luuakse käsitseja GuzzleHttp\default_handler
abil.
Vihje
Kliendi loomisel saate määrata vaikimisi küpsiste valiku true
et kasutada kliendiga seotud jagatud küpsiste sessiooni.
0
, et oodata lõpmatult (vaikimisi käitumine).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]);
Märkus
Seda seadistust peab toetama taotluse saatmiseks kasutatav HTTP-käitleja.
connect_timeout
toetab praegu ainult sisseehitatud cURL
käitleja.
Määra true
või määra fopen()
poolt tagastatud PHP voog, et
lubada debugiväljundit koos taotluse saatmiseks kasutatava käsitsitajaga. Näiteks,
cURL-i kasutamisel päringute edastamiseks, cURL-i verbose CURLOPT_VERBOSE
väljastatakse. Kui kasutate PHP voogade mähist, siis voogade mähis
teateid väljastatakse. Kui see on seatud true, kirjutatakse väljundisse
PHP STDOUTi. Kui on antud PHP voog, siis kirjutatakse väljund voogu
fopen()
ressurssEi ole
GuzzleHttp\RequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
Ülaltoodud näite käivitamine annab tulemuseks midagi järgmist:
* 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
Määrake, kas Content-Encoding
vastused (gzip,
deflate jne) automaatselt dekodeeritakse.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Selle valikuga saab kontrollida, kuidas sisuga kodeeritud vastusekehad on
käsitletakse. Vaikimisi on decode_content
seatud väärtuseks true, mis tähendab, et kõik gzi-pakendatud
või deflateeritud vastus dekodeeritakse Guzzle'i poolt.
Kui see on seatud false
, ei dekodeerita vastuse keha kunagi, mis tähendab, et baitid läbivad käitleja muutmata kujul.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Kui see on seatud stringiks, dekodeeritakse vastuse baitid ja stringi väärtus
decode_content
esitatud väärtus antakse üle Accept-Encoding
.
päises esitatud päringu päises.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Millisekundite arv, mis tuleb enne taotluse saatmist edasi lükata
null
GuzzleHttp\RequestOptions::DELAY
Kontrollib pealkirja "Expect: 100-Continue" käitumist.
1048576
GuzzleHttp\RequestOptions::EXPECT
Määra true
, et lubada "Expect: 100-Continue" päise kasutamine kõigi taotluste puhul.
mis saadavad keha. Määra false
, et keelata "Expect: 100-Continue".
päise kõigi taotluste puhul. Määra numbriks, nii et kasuliku koormuse suurus peab olema
olema suurem kui see number, et saata Expect-pealkiri. Seadistamine
number saadab Expect-pealkirja kõikide taotluste puhul, mille puhul on faili suurus
ei ole võimalik kindlaks teha või mille puhul keha ei ole tagasi keritav.
Vaikimisi lisab Guzzle päise "Expect: 100-Continue", kui taotluse keha suurus on suurem kui 1 MB ja taotlus kasutab HTTP/1.1.
Märkus
See valik rakendub ainult HTTP/1.1 kasutamise korral. HTTP/1.0 ja HTTP/1.0 HTTP/2.0 protokollid ei toeta päise "Expect: 100-Continue". Toetus "Expect: 100-Continue" töövoogude käsitlemiseks peab olema rakendada Guzzle'i HTTP-käsitlejate poolt, mida klient kasutab.
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']);
Märkus
Seda seadistust peab toetama taotluse saatmiseks kasutatav HTTP-käitleja.
force_ip_resolve
toetab praegu ainult sisseehitatud cURLi
ja voogkäsitlejad.
GuzzleHttp\RequestOptions::FORM_PARAMS
Assotsiatiivne massiivi vormivälja nimedest väärtustesse, kus iga väärtus on string või stringide massiiv. Määrab Content-Type päise väärtuseks application/x-www-form-urlencoded, kui Content-Type päis ei ole juba olemas. olemas.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Märkus
form_params
ei saa kasutada koos multipart
valikuga. Te peate kasutama
ühte või teist. Kasutage form_params
jaoks application/x-www-form-urlencoded
taotluste puhul ja multipart
multipart/form-data
taotluste puhul.
Seda valikut ei saa kasutada koos body
, multipart
või 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']
]
]);
Pealkirjad võib lisada vaikimisi valikud kliendi loomisel. Kui päised
kasutatakse vaikimisi valikudena, rakendatakse neid ainult siis, kui loodav taotlus
ei sisalda juba konkreetset päistekirja. See hõlmab nii taotlusi, mis on edastatud
kliendile send()
ja sendAsync()
meetoditega, kui ka päringud
mis on loodud kliendi poolt (nt request()
ja requestAsync()
).
$client = new GuzzleHttp\Client(['headers' => ['X-Foo' => 'Bar']]);
// Will send a request with the X-Foo header.
$client->request('GET', '/get');
// Sets the X-Foo header to "test", which prevents the default header
// from being applied.
$client->request('GET', '/get', ['headers' => ['X-Foo' => 'test']]);
// Will disable adding in default headers.
$client->request('GET', '/get', ['headers' => null]);
// Will not overwrite the X-Foo header because it is in the message.
use GuzzleHttp\Psr7\Request;
$request = new Request('GET', 'http://foo.com', ['X-Foo' => 'test']);
$client->send($request);
// Will overwrite the X-Foo header with the request option provided in the
// send method.
use GuzzleHttp\Psr7\Request;
$request = new Request('GET', 'http://foo.com', ['X-Foo' => 'test']);
$client->send($request, ['headers' => ['X-Foo' => 'overwrite']]);
false
, et keelata erandite viskamine HTTP-protokollile.
vigade (st 4xx ja 5xx vastused). Erandid visatakse vaikimisi, kui
HTTP-protokolli vigade ilmnemisel.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
Hoiatus
See valik mõjutab ainult siis, kui teie käitlejal on käsurea
GuzzleHttp\Middleware::httpErrors
middleware. See middleware lisatakse
vaikimisi, kui klient luuakse ilma käitlejata, ja see lisatakse järgmiselt
vaikimisi, kui luuakse käsitseja GuzzleHttp\default_handler
abil.
Rahvusvaheliste domeeninimede (IDN) tugi (vaikimisi lubatud, kui
intl
laiendus on saadaval)
true
kui intl
laiendus on saadaval (ja ICU raamatukogu on 4.6+ PHP 7.2+ jaoks), false
muidu
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
Võimaldab/välja lülitab IDN-toe, saab kasutada ka täpseks kontrolliks, kombineerides
IDNA_* konstandid (v.a IDNA_ERROR_*), vt $options
parameetrit in
idn_to_ascii()
dokumentatsioonist täpsemalt.
json
valikut kasutatakse JSON-kodeeritud andmete hõlpsaks üleslaadimiseks, kuna
päringu kehana. Content-Type päis application/json
on application/json
.
lisatakse, kui sõnumil ei ole juba Content-Type päistet.json_encode()
funktsiooniga.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Siin on näide, kuidas kasutada tap
vahendustarkvara, et näha, milline taotlus saadetakse üle kaabli.
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)
]);
Märkus
See päringuvõimalus ei toeta Content-Type päise kohandamist.
või PHP json_encode() valikuid.
funktsiooni. Kui teil on vaja neid seadistusi kohandada, siis peate edastama funktsiooni
JSON-kodeeritud andmed ise päringusse, kasutades body
päringusse.
valikuga ja peate määrama õige Content-Type päise, kasutades valikut
headers
taotluse valik.
Seda valikut ei saa kasutada koos body
, form_params
või multipart
.
GuzzleHttp\RequestOptions::MULTIPART
multipart
väärtus on assotsiatiivsete massiivide massiiv, millest igaüks sisaldab järgmisi võtmeväärtuspaare:
name
: (string, nõutav) vormivälja nimisisu
: (StreamInterface/resource/string, nõutav) Andmed, mida kasutatakse dokumendis
vormi elemendis.pealkirjad
: (massiivi) Vabatahtlik assotsiatiivne massiivi kohandatud päiseid, mida kasutada koos
vormielemendiga.failinimi
: (string) Vabatahtlik string, mis saadetakse osa failinimena.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'
],
]
]);
Märkus
multipart
ei saa kasutada koos form_params
valikuga. Te peate
kasutada ühte või teist. Kasutage form_params
jaoks application/x-www-form-urlencoded
taotluste puhul ja multipart
multipart/form-data
taotluste puhul.
Seda valikut ei saa kasutada koos body
, form_params
või json
Kutsutav, mis kutsutakse üles, kui vastuse HTTP-pealkirjad on muutunud. saadud, kuid keha ei ole veel alanud allalaadimist
GuzzleHttp\RequestOptions::ON_HEADERS
Väljakutse võtab vastu Psr\Http\Message\ResponseInterface
objekti. Kui erand
kutsutava poolt visatakse, siis vastusega seotud lubadus on
lükatakse tagasi GuzzleHttp\Exception\RequestException
abil, mis mähib selle
visatud erandit.
Teil võib olla vaja teada, milliseid päiseid ja staatuskoode saadi, enne kui andmeid saab valamusse kirjutada.
// 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!');
}
}
]);
Märkus
HTTP-handlerite kirjutamisel tuleb kasutada funktsiooni on_headers
.
enne andmete kirjutamist vastuse kehasse.
on_stats
võimaldab teil saada juurdepääsu ülekandestatistikale
taotlusele ja pääseda ligi käitleja madalama taseme ülekande üksikasjadele
mis on seotud teie kliendiga. on_stats
on callable, mida kutsutakse üles.
kui käitleja on lõpetanud päringu saatmise. Callback kutsutakse üles
ülekandestatistika taotluse, saadud vastuse või
ilmnenud vea kohta. Andmete hulka kuulub kogu aeg, mis kulus
taotluse saatmiseks.
GuzzleHttp\RequestOptions::ON_STATS
Väljakutse võtab vastu GuzzleHttp\TransferStats
objekti.
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());
}
}
]);
Määratleb funktsiooni, mida kutsutakse üles, kui ülekanne edeneb.
Ei ole
GuzzleHttp\RequestOptions::PROGRESS
Funktsioon võtab vastu järgmised positsioonilised argumendid:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Edasta string, et määrata HTTP-proxy, või massiivi, et määrata erinevaid proxy'sid erinevate protokollide jaoks.
Ei ole
GuzzleHttp\RequestOptions::PROXY
Andke üle string, et määrata kõigi protokollide proxy.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Anda üle assotsiatiivne massiivi, et määrata HTTP-proxy'd konkreetsete URI-skeemide jaoks.
(nt "http", "https"). Anda no
võtme-väärtuse paar, et anda nimekiri
hostide nimed, millele ei tohiks proxy't teha.
Märkus
Guzzle täidab selle väärtuse automaatselt teie keskkonna
NO_PROXY
keskkonnamuutuja. Kui aga antakse proxy
päringuvõimaluse puhul on teie ülesanne esitada no
väärtus, mis on parsitud no
.
NO_PROXY
keskkonnamuutuja
(nt 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
]
]);
Märkus
Saate esitada proxy-URL-i, mis sisaldab skeemi, kasutajanime ja parooli.
Näiteks "http://username:[email protected]:10"
.
Assotsiatiivne massiiv päringustringide väärtustest või päringustringidest, mis tuleb lisada päringule.
Ei ole
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Valikus query
määratud päringustringid asendavad kõik päringustringide väärtused, mis on esitatud päringu URI-s.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP ini seadistuse väärtust.GuzzleHttp\RequestOptions::READ_TIMEOUT
Timeout kehtib üksikute lugemisoperatsioonide kohta voogedastatud kehal (kui valik stream
on lubatud).
$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());
Määrake, kuhu vastuse keha salvestatakse.
fopen()
ressurssPsr\Http\Message\StreamInterface
PHP temp stream
GuzzleHttp\RequestOptions::SINK
Andke üle string, et määrata tee faili, mis salvestab vastuse sisu:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Andke fopen()
abil tagastatud ressurss üle, et kirjutada vastus PHP voogudesse:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Andke üle Psr\Http\Message\StreamInterface
objekt, et edastada vastuse keha avatud PSR-7 voogu.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Märkus
save_to
taotluse valik on kaotanud kehtivuse ja on asendunud valikuga save_to.
sink
asemel. Valiku save_to
pakkumine on nüüd alias
sink
.
Määrake faili tee, mis sisaldab salajast SSL-võtit PEM-formaadis. formaadis. Kui nõutakse salasõna, siis määrata massiivi, mis sisaldab teed SSL-võtmele esimeses massiivielemendis, millele järgneb nõutav parool. sertifikaadi jaoks vajalik parool teises elemendis.
Ei ole
GuzzleHttp\RequestOptions::SSL_KEY
Märkus
ssl_key
on rakendatud HTTP-handlerite poolt. See on praegu ainult
toetab ainult cURL-käsitleja, kuid seda võivad toetada ka teised kolmanda osa
käitlejad.
true
, et voogedastada vastus, mitte laadida see kõik alla.
ette.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);
}
Märkus
Streaming-vastuse tugi peab olema rakendatud HTTP-käitleja poolt, mida kasutab klient. Seda võimalust ei pruugi iga HTTP-käsitleja toetada, aga vastuse objekti liides jääb samaks, sõltumata sellest, kas või käitleja seda toetab või ei toeta.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Kirjeldab SSL-sertifikaadi kontrollimise käitumist taotluse puhul
true
, et lubada SSL-sertifikaadi kontroll ja kasutada vaikimisi
CA-paketti, mida pakub operatsioonisüsteem.false
, et keelata sertifikaadi kontroll (see on ebaturvaline!)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]);
Kui te ei vaja konkreetset sertifikaatide paketti, siis pakub Mozilla spetsiaalset üldkasutatav CA-pakett, mida saab alla laadida siit (mida pakub cURL-i haldaja). Kui teil on CA-pakett saadaval aadressil kettal, saate määrata PHP ini seadistuse "openssl.cafile", et see viitaks teele, kus asub faili, mis võimaldab teil jätta ära "verify" päringuvõimaluse. Palju rohkem üksikasju SSL-sertifikaatide kohta leiate veebilehelt cURL veebilehelt.
0
et oodata lõpmatult (vaikimisi käitumine).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]);