Klienta izveidotos un pārsūtītos pieprasījumus var pielāgot, izmantojot pieprasījuma opcijas. Pieprasījuma opcijas kontrolē dažādus pieprasījuma aspektus tostarp galvenes, vaicājuma virknes parametrus, laika ierobežojuma iestatījumus, pieprasījuma saturu. pieprasījumu un daudz ko citu.
Visos turpmākajos piemēros tiek izmantots šāds klients:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Apraksta pieprasījuma novirzīšanas uzvedību
307847298983429311951
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
'track_redirects' => false
]
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS
Iestatiet false
, lai atspējotu novirzīšanu.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Iestatiet true
(noklusējuma iestatījums), lai iespējotu parastās pāradresācijas ar maksimālo skaitu 5 pāradresācijas.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
Varat nodot arī asociatīvu masīvu, kas satur šādus atslēgu un vērtību pārus:
max: (int, noklusējuma=5) maksimālais atļauto novirzījumu skaits.
stingrs: (bool, noklusējuma=false) Iestatiet true, lai izmantotu striktus novirzīšanu. RFC prasībām atbilstošas stingras pāradresēšanas nozīmē, ka POST pāradresēšanas pieprasījumi tiek nosūtīti kā POST pieprasījumi pretstatā tam, ko dara vairums pārlūkprogrammu, proti, pāradresē POST pieprasījumus. ar GET pieprasījumiem.
referer: (bool, noklusējuma=false) Iestatiet true, lai ļautu pievienot Referer galveni, kad notiek pāradresācija.
protokoli: (masīvs, noklusējuma=['http', 'https']) Norādīts, kuri protokoli ir atļauts izmantot novirzīšanas pieprasījumiem.
on_redirect: (callable) PHP izsaucamais, kas tiek izsaukts, kad notiek pāradresācija. tiek sastapts. Izsaucams kopā ar sākotnējo pieprasījumu un saņemto pāradresēšanas atbildi. Jebkura atgrieztā vērtība no on_redirect funkcija tiek ignorēta.
track_redirects: (bool) Ja iestatīts uz true
, katrs novirzītais URI un statuss
sastaptais kods tiks izsekots X-Guzzle-Redirect-History
un
X-Guzzle-Redirect-Status-History
galvenes. Visi URI un
statusa kodi tiks saglabāti tādā secībā, kādā tie tika sastapti.
Piezīme: Izsekojot novirzījumus, X-Guzzle-Redirect-History
galvene
izslēgs sākotnējā pieprasījuma URI un X-Guzzle-Redirect-Status-History
>.
galvenē netiks iekļauts galīgais statusa kods.
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...
Brīdinājums
Šī opcija darbojas tikai tad, ja jūsu apstrādātājam ir
GuzzleHttp\Middleware::redirect
starpprogrammatūra. Šī starpprogrammatūra tiek pievienota
pēc noklusējuma, kad klients tiek izveidots bez apstrādātāja, un tiek pievienota ar
pēc noklusējuma, kad apstrādātājs tiek izveidots ar GuzzleHttp\HandlerStack::create
.
Piezīme
Šai opcijai nav nekādas ietekmes, ja pieprasījumi tiek veikti, izmantojot GuzzleHttp\Client::sendRequest()
. Lai nodrošinātu atbilstību PSR-18, jebkura pāradresēšanas atbilde tiek atgriezta tāda, kāda tā ir.
Nodod HTTP autentifikācijas parametru masīvu, ko izmantot kopā ar
pieprasījumu. Šajā masīvā jāietver lietotājvārds ar indeksu 3078472989834293119510], parole ar indeksu
indeksā [1], un pēc izvēles varat norādīt iebūvēto autentifikācijas veidu, kas norādīts
index [2]. Nododiet null
, lai atspējotu autentifikāciju pieprasījumam
Nav
GuzzleHttp\RequestOptions::AUTH
Iebūvētie autentifikācijas veidi ir šādi:
Autorizācija
galvenē (noklusējuma iestatījums, kas tiek izmantots, ja nav norādīts neviens
norādīts).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Piezīme
Pašlaik tas tiek atbalstīts tikai tad, ja tiek izmantots cURL apstrādātājs, bet izveidot aizstājēju, ko var izmantot ar jebkuru HTTP apstrādātāju. plānots.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Piezīme
Pašlaik tas tiek atbalstīts tikai tad, ja tiek izmantots cURL apstrādātājs.
Iespēja body
tiek izmantota, lai kontrolētu vienības ķermeni.
(piemēram, PUT, POST, PATCH).
fopen()
resurssPsr\Http\Message\StreamInterface
Nav
GuzzleHttp\RequestOptions::BODY
Šo iestatījumu var iestatīt uz jebkuru no šiem veidiem:
string
// Jūs varat sūtīt pieprasījumus, kuros kā ziņojuma tekstu izmanto virkni.
$client->pieprasījums('PUT', '/put', 307847298983429311951'body' => 'foo'>);
resurss, kas atgriezts no fopen()
// Jūs varat sūtīt pieprasījumus, kuru ķermenī tiek izmantots plūsmas resurss.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->pieprasījums('PUT', '/put', 307847298983429311951'body' => $resource]);
Psr\Http\Message\StreamInterface
// Jūs varat sūtīt pieprasījumus, kas kā ķermeni izmanto Guzzle plūsmas objektu.
$stream = GuzzleHttp\Psr7\Utils::streamFor('saturs...');
$client->pieprasījums('POST', '/post', 307847298983429311951'body' => $stream]);
Piezīme
Šo opciju nevar izmantot kopā ar form_params
, multipart
vai json
.
Iestatīt kā virkni, lai norādītu ceļu līdz datnei, kas satur PEM formatētu klienta puses sertifikātu. Ja tiek prasīta parole, tad iestatiet uz masīvs, kura pirmajā masīva elementā ir ceļš līdz PEM datnei. kam seko sertifikātam vajadzīgā parole otrajā masīva elementā elements.
Nav
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Sīkfailu opcija jānorāda kā GuzzleHttp\Cookie\CookieJarInterface
vai false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Brīdinājums
Šī opcija darbojas tikai tad, ja jūsu apstrādātājam ir
GuzzleHttp\Middleware::cookies
starpprogrammatūra. Šī starpprogrammatūra tiek pievienota
pēc noklusējuma, kad klients tiek izveidots bez apstrādātāja, un tiek pievienota ar
pēc noklusējuma, ja apstrādātājs tiek izveidots ar GuzzleHttp\default_handler
.
Padoms
Veidojot klientu, varat iestatīt noklusējuma sīkfailu opciju uz true
lai izmantotu koplietošanas sīkfailu sesiju, kas saistīta ar klientu.
0
, lai gaidītu nenoteiktu laiku (noklusējuma iestatījums).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]);
Piezīme
Šim iestatījumam jābūt atbalstītam HTTP apstrādātājā, kas tiek izmantots, lai nosūtītu pieprasījumu.
connect_timeout
pašlaik atbalsta tikai iebūvētais cURL
apstrādātājs.
Iestatīts uz true
vai iestatīts uz PHP plūsmu, ko atdod fopen()
uz
iespējotu atkļūdošanas izvadi ar apstrādātāju, kas tiek izmantots pieprasījuma nosūtīšanai. Piemēram,
ja pieprasījumu pārsūtīšanai izmanto cURL, cURL verbose CURLOPT_VERBOSE
.
tiks izvadīts. Izmantojot PHP plūsmas ietvarprogrammu, plūsmas ietvarprogramma
tiks izsūtīti paziņojumi. Ja iestatīts uz true, izvads tiek rakstīts uz
PHP STDOUT. Ja ir norādīta PHP plūsma, izvads tiek rakstīts uz šo plūsmu.
fopen()
resurssNav
GuzzleHttp\RequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
Izpildot iepriekš minēto piemēru, tiks iegūts šāds rezultāts:
* 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
Norādiet, vai Content-Encoding
atbildes (gzip,
deflate u.c.) tiek automātiski dekodēti.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Šo opciju var izmantot, lai kontrolētu, kā satura kodētas atbildes struktūras tiek
apstrādāt. Pēc noklusējuma decode_content
ir iestatīts uz true, kas nozīmē, ka jebkurš gziped
vai deflēto atbildi Guzzle dekodēs.
Ja iestatīts uz false
, atbildes ķermenis nekad netiek dekodēts, kas nozīmē, ka baiti caur apstrādātāju iziet nemainīti.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Ja iestatīts uz virkni, atbildes baiti tiek atšifrēti un tiek iegūta virknes vērtība.
kas sniegta decode_content
opcijai, tiek nodota kā Accept-Encoding
.
pieprasījuma galveni.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Milisekunžu skaits, kas jāatliek pirms pieprasījuma nosūtīšanas.
null
GuzzleHttp\RequestOptions::DELAY
Kontrolē "Expect: 100-Continue" galvenes uzvedību.
1048576
GuzzleHttp\RequestOptions::EXPECT
Iestatiet true
, lai visiem pieprasījumiem iespējotu galveni "Expect: 100-Continue".
kas sūta ķermeni. Iestatiet false
, lai atspējotu "Expect: 100-Continue".
galveni visiem pieprasījumiem. Iestatiet kā skaitli, lai ielādes lielumam būtu jābūt
ir lielāka par šo skaitli, lai nosūtītu Expect galveni. Iestatot uz a
skaitli, tiks nosūtīta Expect galvene visiem pieprasījumiem, kuros kravas izmērs ir lielāks par 0,5.
nav iespējams noteikt, vai arī ja kravas kaste nav pārtinama.
Pēc noklusējuma Guzzle pievieno galveni "Expect: 100-Continue", ja pieprasījuma ķermeņa lielums ir lielāks par 1 MB un pieprasījumā tiek izmantots HTTP/1.1.
Piezīme
Šī opcija stājas spēkā tikai tad, ja tiek izmantots HTTP/1.1. HTTP/1.0 un HTTP/2.0 protokoli neatbalsta galveni "Expect: 100-Continue". Atbalstam, lai apstrādātu "Expect: 100-Continue" darba plūsmu, jābūt jāīsteno Guzzle HTTP apstrādātājiem, ko izmanto klients.
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']);
Piezīme
Šim iestatījumam jābūt atbalstītam HTTP apstrādātājā, kas tiek izmantots, lai nosūtītu pieprasījumu.
force_ip_resolve
pašlaik atbalsta tikai iebūvētais cURL
un plūsmas apstrādātāji.
GuzzleHttp\RequestOptions::FORM_PARAMS
Asociatīvais formas lauka nosaukumu masīvs ar vērtībām, kur katra vērtība ir virkne vai virkņu masīvs. Nosaka Content-Type galveni uz application/x-www-form-urlencoded, ja Content-Type galvene jau nav norādīta. nav.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Piezīme
form_params
nevar izmantot ar multipart
iespēju. Jums būs jāizmanto
vienu vai otru. Izmantojiet form_params
, lai application/x-www-form-urlencoded
.
pieprasījumiem un multipart
multipart/form-data
pieprasījumiem.
Šo opciju nevar izmantot kopā ar body
, multipart
vai 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']
]
]);
Izveidojot klientu, galvenes var pievienot kā noklusējuma opcijas. Ja galvenes
tiek izmantotas kā noklusējuma opcijas, tās tiek piemērotas tikai tad, ja tiek izveidots pieprasījums.
vēl nav ietverta konkrētā galvene. Tas attiecas gan uz pieprasījumiem, kas nodoti
klientam send()
un sendAsync()
metodēs, gan pieprasījumus
izveidotās klienta metodes (piemēram, request()
un 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
, lai atspējotu izņēmumu izmešanu HTTP protokolā.
kļūdas (t.i., 4xx un 5xx atbildes). Izņēmumi pēc noklusējuma tiek mesti, kad
tiek konstatētas HTTP protokola kļūdas.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
Brīdinājums
Šī opcija darbojas tikai tad, ja jūsu apstrādātājam ir
GuzzleHttp\Middleware::httpErrors
starpprogrammatūra. Šī starpprogrammatūra tiek pievienota
pēc noklusējuma, kad klients tiek izveidots bez apstrādātāja, un tiek pievienota ar
pēc noklusējuma, ja apstrādātājs tiek izveidots ar GuzzleHttp\default_handler
.
Internacionalizēto domēna vārdu (IDN) atbalsts (iespējots pēc noklusējuma, ja
intl
paplašinājums ir pieejams)
true
ja intl
paplašinājums ir pieejams (un ICU bibliotēka ir 4.6+ PHP 7.2+), false
citādi
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
Ieslēdz/izslēdz IDN atbalstu, var izmantot arī precīzai kontrolei, kombinējot
IDNA_* konstantes (izņemot IDNA_ERROR_*), skatīt $options
parametru sadaļā
idn_to_ascii()
sīkāku informāciju skatīt dokumentācijā.
json
opcija tiek izmantota, lai viegli augšupielādētu JSON kodētus datus kā.
pieprasījuma ķermenī. Content-Type galvene application/json
būs šāda.
ja ziņojumā jau nav Content-Type galvenes.json_encode()
funkciju.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Šeit ir piemērs, kā izmantot starpprogrammatūru tap
, lai redzētu, kāds pieprasījums tiek nosūtīts pa vadu.
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)
]);
Piezīme
Šī pieprasījuma opcija neatbalsta Content-Type galvenes pielāgošanu.
vai kādu no PHP json_encode() iespējām.
funkciju. Ja jums ir nepieciešams pielāgot šos iestatījumus, tad jums ir jānodod funkcija
JSON kodētus datus pieprasījumā jāievada pašam, izmantojot body
pieprasījumu.
opcija un jānorāda pareizā Content-Type galvene, izmantojot
headers
pieprasījuma opciju.
Šo opciju nevar izmantot kopā ar body
, form_params
vai multipart
.
GuzzleHttp\RequestOptions::MULTIPART
Vērtība multipart
ir asociatīvo masīvu masīvs, no kuriem katrs satur šādus atslēgu un vērtību pārus:
nosaukums
: (virkne, obligāts) veidlapas lauka nosaukumssaturs
: (StreamInterface/resource/string, obligāts) Dati, kas jāizmanto
veidlapas elementā.headers
: (masīvs) Neobligāts asociatīvs pielāgotu galvenu masīvs, ko izmantot ar
veidlapas elementu.faila nosaukums
: (virkne) Neobligāta virkne, ko sūtīt kā daļas faila nosaukumu.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'
],
]
]);
Piezīme
multipart
nevar izmantot ar form_params
opciju. Jums būs nepieciešams
jāizmanto viena vai otra iespēja. Izmantojiet form_params
, lai application/x-www-form-urlencoded
.
pieprasījumiem un multipart
multipart/form-data
pieprasījumiem.
Šo opciju nevar izmantot kopā ar body
, form_params
vai json
.
Izsaucamā iespēja, kas tiek izsaukta, kad atbildes HTTP galvenēs ir ir saņemta atbilde, bet vēl nav sākta tās satura lejupielāde
GuzzleHttp\RequestOptions::ON_HEADERS
Izsaucamais pieņem Psr\Http\Message\ResponseInterface
objektu. Ja rodas izņēmums
izsaucējs izmet, tad solījums, kas saistīts ar atbildi, būs
tiks noraidīts ar GuzzleHttp\Exception\RequestException
, kas ietin
Izņēmums, kas tika izmests.
Pirms datu ierakstīšanas izlietnē var būt jāzina, kādi galvenes un statusa kodi tika saņemti.
// 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!');
}
}
]);
Piezīme
Rakstot HTTP apstrādātājus, jāizsauc on_headers
funkcija.
pirms datu rakstīšanas atbildes korpusā.
on_stats
ļauj jums piekļūt pārsūtīšanas statistikai no
pieprasījumu un piekļūt apstrādātāja zemāka līmeņa pārsūtīšanas informācijai.
kas saistīts ar jūsu klientu. on_stats
ir izsaucamā iespēja, kas tiek izsaukta.
kad apstrādātājs ir pabeidzis sūtīt pieprasījumu. Atgriezeniskais izsaukums tiek izsaukts
ar pārsūtīšanas statistiku par pieprasījumu, saņemto atbildi, vai
pieļauto kļūdu. Datos ir ietverts kopējais laiks, kas bija nepieciešams
lai nosūtītu pieprasījumu.
GuzzleHttp\RequestOptions::ON_STATS
Izsaucamais pieņem GuzzleHttp\TransferStats
objektu.
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());
}
}
]);
Definē funkciju, kas tiek izsaukta, kad notiek pārsūtīšanas progress.
Nav
GuzzleHttp\RequestOptions::PROGRESS
Funkcija pieņem šādus pozicionālos argumentus:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Nodod virkni, lai norādītu HTTP starpniekserveri, vai masīvu, lai norādītu dažādus starpniekus dažādiem protokoliem.
Nav
GuzzleHttp\RequestOptions::PROXY
Nodod virkni, lai norādītu starpniekserveri visiem protokoliem.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Nodod asociatīvu masīvu, lai norādītu HTTP starpniekus konkrētām URI shēmām
(t. i., "http", "https"). Sniedziet nē
atslēgu vērtību pāri, lai sniegtu sarakstu ar
saimniekfailu nosaukumus, uz kuriem nedrīkst veikt prokreditēšanu.
Piezīme
Guzzle automātiski aizpildīs šo vērtību ar jūsu vides
NO_PROXY
vides mainīgo. Tomēr, norādot proxy
pieprasījuma opciju, jums ir jānorāda no
vērtība, kas analizēta no
NO_PROXY
vides mainīgo
(piemēram, 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
]
]);
Piezīme
Varat norādīt proxy URL, kas satur shēmu, lietotājvārdu un paroli.
Piemēram, "http://username:[email protected]:10"
.
Asociatīvais vaicājuma virknes vērtību masīvs vai vaicājuma virkne, ko pievienot. pieprasījumam.
Nav
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Pieprasījuma virknes, kas norādītas query
opcijā, pārraksta visas pieprasījuma URI norādītās pieprasījuma virknes vērtības.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP ini iestatījuma vērtība.GuzzleHttp\RequestOptions::READ_TIMEOUT
Laika limits attiecas uz atsevišķām lasīšanas operācijām uz straumētu ķermeni (ja ir iespējota opcija straume
).
$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());
Norādiet, kur tiks saglabāts atbildes teksts.
fopen()
resurssPsr\Http\Message\StreamInterface
PHP pagaidu plūsma
GuzzleHttp\RequestOptions::SINK
Nodod virkni, lai norādītu ceļu līdz datnei, kurā tiks saglabāts atbildes ķermeņa saturs:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Nodod no fopen()
saņemto resursu, lai atbildi ierakstītu PHP plūsmā:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Nodod Psr\Http\Message\StreamInterface
objektu, lai straumētu atbildes ķermeni uz atvērtu PSR-7 plūsmu.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Piezīme
save_to
pieprasījuma opcija ir atcelta, aizstājot to ar opciju
sink
pieprasījuma opciju. Iespēja save_to
tagad ir aizstājvārds
sink
.
Norādiet ceļu līdz datnei, kurā ir privātā SSL atslēga PEM formātā. formātā. Ja tiek prasīta parole, tad iestatiet uz masīvu, kas satur ceļu uz SSL atslēgu pirmajā masīva elementā, kam seko prasītā parole. sertifikāta parole otrajā elementā.
Nav
GuzzleHttp\RequestOptions::SSL_KEY
Piezīme
ssl_key
īsteno HTTP apstrādātāji. Pašlaik tas ir tikai
atbalsta cURL apstrādātājs, bet to varētu atbalstīt arī citi trešās puses apstrādātāji.
apstrādātāji.
true
, lai straumētu atbildi, nevis lejupielādētu to visu.
iepriekš.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);
}
Piezīme
Straumēšanas atbildes atbalsts jāimplementē HTTP apstrādātājā, ko izmanto klientam. Šo opciju var neatbalstīt visi HTTP apstrādātāji, bet atbildes objekta interfeiss paliek nemainīgs neatkarīgi no tā, vai vai apstrādātājs to atbalsta.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Apraksta pieprasījuma SSL sertifikāta pārbaudes uzvedību.
true
, lai iespējotu SSL sertifikāta verifikāciju un izmantotu noklusējuma iestatījumu.
CA paketi, ko nodrošina operētājsistēma.false
, lai atslēgtu sertifikātu verifikāciju (tas ir nedrošs!)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]);
Ja jums nav nepieciešams īpašs sertifikātu komplekts, Mozilla nodrošina parasti izmantoto CA paketi, ko var lejupielādēt šeit (nodrošina cURL uzturētājs). Kad CA kopums ir pieejams vietnē diskā, varat iestatīt PHP ini iestatījumu "openssl.cafile" tā, lai tas norādītu uz ceļu pie failu, kas ļauj izlaist pieprasījuma "verify" opciju. Daudz sīkāk par SSL sertifikātus var atrast cURL vietnē.
0
lai gaidītu nenoteiktu laiku (noklusējuma iestatījums).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'
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);