U kunt verzoeken die door een cliënt zijn gemaakt en verzonden aanpassen met verzoek opties. Verzoek opties regelen verschillende aspecten van een verzoek inclusief, headers, query string parameters, timeout instellingen, de body van een verzoek, en nog veel meer.
Alle volgende voorbeelden gebruiken de volgende client:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Beschrijft het redirect gedrag van een verzoek
[
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
"track_redirects" => false
]
GuzzleHttpRequestOptions::ALLOW_REDIRECTS
Zet op false
om redirects uit te schakelen.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Zet op true
(de standaard instelling) om normale redirects te activeren met een maximum aantal van 5 redirects.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
U kunt ook een associatieve array doorgeven die de volgende sleutel-waardeparen bevat:
max: (int, default=5) maximum aantal toegestane redirects.
strict: (bool, default=false) Zet op true om strikte redirects te gebruiken. Strikte RFC-conforme redirects betekent dat POST redirect verzoeken verzonden worden als POST verzoeken in plaats van te doen wat de meeste browsers doen, namelijk POST verzoeken omleiden met GET verzoeken.
referer: (bool, default=false) Zet op true om de Referer header toe te voegen bij het omleiden.
protocols: (array, default=['http', 'https']) Gespecificeerd welke protocols toegestaan voor redirect verzoeken.
on_redirect: (calllable) PHP calllable die aangeroepen wordt wanneer een redirect wordt tegengekomen. De calllable wordt aangeroepen met het originele verzoek en het redirect antwoord dat werd ontvangen. Elke terugkeerwaarde van de on_redirect functie wordt genegeerd.
track_redirects: (bool) Indien ingesteld op true
zal elke URI en statuscode die wordt doorverwezen gevolgd worden in de X-Guzzle-Redirect-History
.
code worden bijgehouden in de X-Guzzle-Redirect-History
en X-Guzzle-Redirect-History
.
X-Guzzle-Redirect-Status-History
headers respectievelijk. Alle URI's en
status codes zullen worden opgeslagen in de volgorde waarin de redirects werden aangetroffen.
Opmerking: Bij het traceren van redirects zal de X-Guzzle-Redirect-History
header
de URI van het initiële verzoek uitsluiten en de X-Guzzle-Redirect-Status-History
header zal de uiteindelijke statuscode uitsluiten.
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...
Waarschuwing
Deze optie heeft enkel effect als je handler de
GuzzleHttpMiddleware::redirect
middleware heeft. Deze middleware wordt standaard toegevoegd
standaard toegevoegd wanneer een client wordt aangemaakt zonder handler, en wordt standaard toegevoegd
standaard toegevoegd wanneer je een handler aanmaakt met GuzzleHttpHandlerStack::create
.
Noot
Deze optie heeft geen effect bij het maken van verzoeken met GuzzleHttpClient::sendRequest()
. Om te voldoen aan PSR-18 wordt elk redirect antwoord teruggestuurd zoals het is.
Geef een array van HTTP authenticatie parameters door om te gebruiken met het
verzoek. De array moet de gebruikersnaam bevatten in index [0], het paswoord in
index [1], en u kunt optioneel een ingebouwd authenticatietype opgeven in
index [2]. Geef null
door om de authenticatie voor een request uit te schakelen.
Geen
GuzzleHttpRequestOptions::AUTH
De ingebouwde verificatietypes zijn als volgt:
Authorization
header (de standaardinstelling wordt gebruikt als er geen is
opgegeven).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Noot
Dit wordt momenteel alleen ondersteund bij gebruik van de cURL handler, maar het maken van een vervanging die kan worden gebruikt met elke HTTP handler is gepland.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Noot
Dit wordt momenteel alleen ondersteund bij gebruik van de cURL-handler.
De body
optie wordt gebruikt om de body van een entiteit
omhullende verzoek (bijv. PUT, POST, PATCH).
fopen()
resourcePsrHttpMessageStreamInterface
Geen
GuzzleHttpRequestOptions::BODY
Deze instelling kan op een van de volgende types worden ingesteld:
string
// Je kunt requests versturen die een string gebruiken als de body van het bericht.
$client->request('PUT', '/put', ['body' => 'foo']);
bron geretourneerd van fopen()
// Je kan verzoeken versturen die een stream resource als body gebruiken.
$resource = \GuzzleHttp::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource]);
PsrHttpMessageStreamInterface
// Je kunt verzoeken sturen die een Guzzle stream-object als body gebruiken
$stream = GuzzleHttp::streamFor('contents...');
$client->request('POST', '/post', ['body' => $stream]);
Noot
Deze optie kan niet gebruikt worden met form_params
, multipart
, of json
Ingesteld op een string om het pad te specificeren naar een bestand dat een PEM geformatteerd client-side certificaat bevat. Indien een wachtwoord vereist is, stel dan in een array met het pad naar het PEM-bestand in het eerste array-element gevolgd door het wachtwoord dat vereist is voor het certificaat in het tweede array element.
Geen
GuzzleHttpRequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttpCookieJarInterface
GuzzleHttpRequestOptions::COOKIES
Je moet de cookies optie specificeren als een GuzzleHttpCookieJarInterface
of false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Waarschuwing
Deze optie heeft enkel effect als je handler de
GuzzleHttpMiddleware::cookies
middleware heeft. Deze middleware wordt standaard toegevoegd
standaard toegevoegd wanneer een client wordt aangemaakt zonder handler, en wordt standaard toegevoegd
standaard toegevoegd wanneer je een handler aanmaakt met GuzzleHttp\default_handler
.
Tip
Wanneer je een client aanmaakt, kan je de standaard cookie-optie op true
zetten
om een gedeelde cookie-sessie te gebruiken die geassocieerd is met de client.
0
om oneindig te wachten (het standaard gedrag).0
GuzzleHttpRequestOptions::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]);
Noot
Deze instelling moet ondersteund worden door de HTTP handler die gebruikt wordt om een request te versturen.
connect_timeout
wordt momenteel enkel ondersteund door de ingebouwde cURL
handler.
Instellen op true
of instellen op een PHP stream geretourneerd door fopen()
om
debug output mogelijk te maken met de handler die gebruikt werd om een verzoek te versturen. Bijvoorbeeld,
wanneer je cURL gebruikt om verzoeken te versturen, zal cURL's verbose van CURLOPT_VERBOSE
zal worden uitgezonden. Bij gebruik van de PHP stream wrapper, zullen stream wrapper
meldingen worden verzonden. Indien ingesteld op true, wordt de uitvoer geschreven naar
PHP's STDOUT. Als een PHP stream wordt verstrekt, wordt de uitvoer naar de stream geschreven.
fopen()
resourceGeen
GuzzleHttpRequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
Het uitvoeren van het bovenstaande voorbeeld zou iets als het volgende opleveren:
* 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
Geef aan of Content-Encoding
antwoorden (gzip,
deflate, etc.) automatisch gedecodeerd worden.
true
GuzzleHttpRequestOptions::DECODE_CONTENT
Deze optie kan worden gebruikt om te bepalen hoe inhoudelijk gecodeerde
behandeld worden. Standaard is decode_content
ingesteld op true, wat betekent dat elke gzipped
of deflated respons zal gedecodeerd worden door Guzzle.
Indien ingesteld op false
wordt de body van een antwoord nooit gedecodeerd, wat betekent dat de bytes ongewijzigd door de handler gaan.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Indien ingesteld op een string, worden de bytes van een antwoord gedecodeerd en de stringwaarde
die aan de decode_content
optie werd meegegeven als de Accept-Encoding
header van het verzoek.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Het aantal milliseconden te vertragen alvorens het verzoek te verzenden.
null
GuzzleHttpRequestOptions::DELAY
Controleert het gedrag van de "Verwacht: 100-Volgende" koptekst.
1048576
GuzzleHttpRequestOptions::EXPECT
Zet op true
om de "Expect: 100-Continue" header in te schakelen voor alle verzoeken
die een body stuurt. Zet op false
om de "Expect: 100-Continue"
header uit te schakelen voor alle verzoeken. Stel in op een getal zodat de grootte van de payload
groter moet zijn dan het getal om de "Expect" header te versturen. Instellen op een
getal zal de Expect header sturen voor alle verzoeken waarbij de grootte van de
payload niet kan worden bepaald of waarbij de body niet terugspoelbaar is.
Standaard zal Guzzle de "Expect: 100-Continue" header toevoegen wanneer de grootte van de body van een verzoek groter is dan 1 MB en een verzoek HTTP/1.1 gebruikt.
Noot
Deze optie treedt alleen in werking bij gebruik van HTTP/1.1. De HTTP/1.0 en HTTP/2.0 protocollen ondersteunen de "Expect: 100-Continue" header niet. Ondersteuning voor de afhandeling van de "Expect: 100-Continue" workflow moet worden geïmplementeerd door Guzzle HTTP-handlers die door een client worden gebruikt.
GuzzleHttpRequestOptions::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']);
Noot
Deze instelling moet ondersteund worden door de HTTP handler die gebruikt wordt om een request te versturen.
force_ip_resolve
wordt momenteel enkel ondersteund door de ingebouwde cURL
en stream handlers.
GuzzleHttpRequestOptions::FORM_PARAMS
Associatieve matrix van formulierveldnamen naar waarden waarbij elke waarde een string of array van strings is. Stelt de Content-Type header in op application/x-www-form-urlencoded als er nog geen Content-Type header aanwezig is.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Noot
form_params
kan niet gebruikt worden met de multipart
optie. Je moet
de een of de ander gebruiken. Gebruik form_params
voor application/x-www-form-urlencoded
verzoeken, en multipart
voor multipart/form-data
verzoeken.
Deze optie kan niet gebruikt worden met body
, multipart
, of json
GuzzleHttpRequestOptions::HEADERS
// Set various headers on a request
$client->request('GET', '/get', [
'headers' => [
'User-Agent' => 'testing/1.0',
'Accept' => 'application/json',
'X-Foo' => ['Bar', 'Baz']
]
]);
Headers kunnen als standaardopties worden toegevoegd bij het aanmaken van een client. Wanneer headers
worden gebruikt als standaardopties, worden ze alleen toegepast als het verzoek dat wordt aangemaakt
de specifieke header nog niet bevat. Dit geldt zowel voor verzoeken die
aan de client in de send()
en sendAsync()
methodes, en verzoeken
die door de cliënt zijn aangemaakt (bijvoorbeeld request()
en 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
om het gooien van excepties op een HTTP protocol
fouten (d.w.z. 4xx en 5xx antwoorden). Standaard worden excepties gegooid wanneer
HTTP protocol fouten worden aangetroffen.true
GuzzleHttpRequestOptions::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
Waarschuwing
Deze optie heeft enkel effect als je handler de
GuzzleHttpMiddleware::httpErrors
middleware heeft. Deze middleware wordt standaard toegevoegd
standaard wanneer een client wordt aangemaakt zonder handler, en wordt standaard toegevoegd
standaard toegevoegd wanneer je een handler aanmaakt met GuzzleHttpHttp_default_handler
.
Ondersteuning voor IDN (Internationalized Domain Name) (standaard ingeschakeld indien
intl
extensie beschikbaar is).
true
indien intl
extensie beschikbaar is (en ICU library is 4.6+ voor PHP 7.2+), false
anders
GuzzleHttpRequestOptions::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
Schakelt IDN ondersteuning in/uit, kan ook gebruikt worden voor precieze controle door het combineren van
IDNA_* constanten (behalve IDNA_ERROR_*), zie $options
parameter in
idn_to_ascii()
documentatie voor meer details.
json
optie wordt gebruikt om gemakkelijk JSON gecodeerde data te uploaden als de
body van een verzoek. Een Content-Type header van application/json
zal worden
toegevoegd indien er nog geen Content-Type header aanwezig is op het bericht.json_encode()
functie.GuzzleHttpRequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Hier is een voorbeeld van het gebruik van de tap
middleware om te zien welk verzoek over de draad wordt gestuurd.
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)
]);
Noot
Deze verzoekoptie ondersteunt niet het aanpassen van de Content-Type header
of één van de opties van PHP's json_encode()
functie. Indien u deze instellingen wenst aan te passen, dan moet u de
JSON gecodeerde data zelf in het verzoek meegeven met de body
verzoek
optie en je moet de juiste Content-Type header specificeren met de
headers
verzoekoptie.
Deze optie kan niet gebruikt worden met body
, form_params
, of multipart
.
GuzzleHttpRequestOptions::MULTIPART
De waarde van multipart
is een array van associatieve arrays, die elk de volgende sleutel-waardeparen bevatten:
naam
: (string, vereist) de naam van het formulierveldinhoud
: (StreamInterface/resource/string, vereist) De gegevens om te gebruiken in
het formulierelement.headers
: (array) Optionele associatieve array van aangepaste headers om te gebruiken met
het formulierelement.bestandsnaam
: (string) Optionele string om mee te sturen als bestandsnaam in het onderdeel.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'
],
]
]);
Noot
multipart
kan niet gebruikt worden met de form_params
optie. Je moet
de ene of de andere gebruiken. Gebruik form_params
voor application/x-www-form-urlencoded
verzoeken, en multipart
voor multipart/form-data
verzoeken.
Deze optie kan niet gebruikt worden met body
, form_params
, of json
Een calllable die wordt aangeroepen wanneer de HTTP headers van het antwoord zijn ontvangen zijn maar de download van de body nog niet begonnen is.
GuzzleHttpRequestOptions::ON_HEADERS
De callable aanvaardt een PsrHttpMessageResponseInterface
object. Als een exception
wordt gegooid door de calllable, dan zal de belofte geassocieerd met het antwoord
afgewezen worden met een GuzzleHttpExceptionRequestException
dat de gegooide exceptie omsluit
uitzondering die werd gegooid.
Het kan nodig zijn te weten welke headers en statuscodes ontvangen zijn voordat gegevens naar de sink geschreven kunnen worden.
// 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!');
}
}
]);
Noot
Wanneer je HTTP handlers schrijft, moet de on_headers
functie aangeroepen worden
vooraleer gegevens naar de body van het antwoord te schrijven.
on_stats
laat je toe om toegang te krijgen tot transfer statistieken van een
verzoek en toegang te krijgen tot de lagere transfer details van de handler
geassocieerd met je client. on_stats
is een calllable die aangeroepen wordt
wanneer een handler klaar is met het verzenden van een verzoek. De callback wordt aangeroepen
met overdrachtsstatistieken over het verzoek, het ontvangen antwoord, of de
fout die is opgetreden. Inbegrepen in de gegevens is de totale hoeveelheid tijd die nodig
om het verzoek te verzenden.
GuzzleHttpRequestOptions::ON_STATS
De calllable aanvaardt een GuzzleHttpTransferStats
object.
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());
}
}
]);
Definieert een functie om aan te roepen wanneer de overdracht vordert.
Geen
GuzzleHttpRequestOptions::PROGRESS
De functie aanvaardt de volgende positionele argumenten:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Geef een string door om een HTTP proxy te specificeren, of een array om verschillende proxies voor verschillende protocols.
Geen
GuzzleHttpRequestOptions::PROXY
Geef een string door om een proxy te specificeren voor alle protocollen.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Geef een associatieve array door om HTTP proxies te specificeren voor specifieke URI schema's
(d.w.z., "http", "https"). Geef een no
sleutel-waarde paar om een lijst te geven van
hostnamen waarnaar niet geproxied moet worden.
Noot
Guzzle zal deze waarde automatisch vullen met de omgevingsvariabele
NO_PROXY
omgevingsvariabele. Echter, wanneer je een proxy
verzoekoptie, is het aan u om de no
waarde te verstrekken die ontleend is aan
de NO_PROXY
omgevingsvariabele
(bv., 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
]
]);
Noot
Je kan proxy URLs voorzien die een schema, gebruikersnaam en paswoord bevatten.
Bijvoorbeeld, "http://username:[email protected]:10"
.
Associatieve array van query string waarden of query string toe te voegen aan het verzoek.
Geen
GuzzleHttpRequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Query strings gespecificeerd in de query
optie zullen alle query string waarden overschrijven die in de URI van een verzoek zijn meegegeven.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP ini instellingGuzzleHttpRequestOptions::READ_TIMEOUT
De time-out geldt voor individuele leesoperaties op een gestreamd lichaam (wanneer de stream
optie is ingeschakeld).
$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());
Specificeer waar de body van een antwoord wordt opgeslagen.
fopen()
resourcePsrttpMessageStreamInterface
PHP temp stream
GuzzleHttpRequestOptions::SINK
Geef een tekenreeks door om het pad naar een bestand op te geven dat de inhoud van het responslichaam zal opslaan:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Geef een bron door geretourneerd door fopen()
om het antwoord naar een PHP stream te schrijven:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Geef een PsrttpMessageStreamInterface
object door om de response body naar een open PSR-7 stream te streamen.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Noot
De save_to
verzoek optie is afgeschreven ten gunste van de
sink
verzoekoptie. Het voorzien van de save_to
optie is nu een alias
van sink
.
Geef het pad op naar een bestand met een private SSL-sleutel in PEM formaat. Indien een wachtwoord vereist is, stel dan een array in met het pad naar de SSL-sleutel in het eerste array-element, gevolgd door het wachtwoord voor het certificaat in het tweede element.
Geen
GuzzleHttpRequestOptions::SSL_KEY
Noot
ssl_key
wordt geïmplementeerd door HTTP handlers. Dit wordt momenteel enkel
ondersteund door de cURL handler, maar zou ondersteund kunnen worden door andere third-part
handlers.
true
om een antwoord te streamen in plaats van het volledig
op voorhand.false
GuzzleHttpRequestOptions::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);
}
Noot
Ondersteuning voor streaming response moet worden geïmplementeerd door de HTTP-handler die wordt gebruikt door een client. Deze optie wordt misschien niet door elke HTTP handler ondersteund, maar de interface van het response object blijft hetzelfde ongeacht of het al dan niet ondersteund wordt door de handler.
GuzzleHttpRequestOptions::SYNCHRONOUS
Beschrijft het verificatiegedrag van het SSL-certificaat bij een aanvraag.
true
om SSL certificaatverificatie in te schakelen en de standaard
CA bundel van het besturingssysteem.false
om certificaatverificatie uit te schakelen (dit is onveilig!).true
GuzzleHttpRequestOptions::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]);
Als u geen specifieke certificaatbundel nodig hebt, dan biedt Mozilla een veelgebruikte CA-bundel die kan worden gedownload hier (geleverd door de onderhouder van cURL). Zodra je een CA bundel beschikbaar hebt op schijf hebt, kan je de "openssl.cafile" PHP ini instelling laten verwijzen naar het pad naar het bestand, zodat u de "verify" verzoekoptie kunt weglaten. Veel meer details over SSL certificaten kan u vinden op de cURL website.
0
om oneindig te wachten (het standaard gedrag).0
GuzzleHttpRequestOptions::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
GuzzleHttpRequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);