Du kan tilpasse anmodninger, der oprettes og overføres af en klient, ved hjælp af request options. Anmodningsindstillinger styrer forskellige aspekter af en anmodning herunder overskrifter, forespørgselsstrengparametre, timeout-indstillinger, kroppen af en anmodning og meget mere.
Alle de følgende eksempler bruger følgende klient:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Beskriver omdirigeringsadfærden for en anmodning
[
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => 30784729298342931111951'http', 'https'],
'track_redirects' => false
]
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS
Sæt til false
for at deaktivere omdirigeringer.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Sæt til true
(standardindstillingen) for at aktivere normale omdirigeringer med et maksimalt antal på 5 omdirigeringer.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
Du kan også sende et associerende array, der indeholder følgende nøgle-værdipar:
max: (int, default=5) maksimalt antal tilladte omdirigeringer.
strict: (bool, default=false) Sæt til true for at bruge strenge omdirigeringer. Strenge RFC-kompatible omdirigeringer betyder, at POST-omdirigeringsanmodninger sendes som POST-forespørgsler i stedet for at gøre det, som de fleste browsere gør, hvilket er at omdirigere POST-forespørgsler med GET-forespørgsler.
referer: (bool, default=false) Sættes til true for at aktivere tilføjelse af refereren header ved viderestilling.
protokoller: (array, default=['http', 'https']) Angiver, hvilke protokoller der er tilladte til omdirigeringsanmodninger.
on_redirect: (callable) PHP-callable, der kaldes, når en redirect er mødt. Callable'en kaldes med den oprindelige anmodning og redirect-svar, der blev modtaget. Enhver returværdi fra on_redirect funktion ignoreres.
track_redirects: (bool) Når den er sat til true
, vil hver omdirigeret URI og status
kode vil blive sporet i X-Guzzle-Redirect-History
og
X-Guzzle-Redirect-Status-History
hhv. headere. Alle URI'er og
statuskoder vil blive gemt i den rækkefølge, som omdirigeringen blev fundet.
Bemærk: Ved sporing af omdirigeringer vil X-Guzzle-Redirect-History
headeren
udelukke den oprindelige anmodnings URI og X-Guzzle-Redirect-Status-History
headeren vil udelukke den endelige statuskode.
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...
Advarsel
Denne indstilling har kun en effekt, hvis din handler har
GuzzleHttp\Middleware::redirect
middleware. Denne middleware tilføjes
som standard, når en klient oprettes uden en handler, og tilføjes af
standard, når der oprettes en handler med GuzzleHttp\HandlerStack::create
.
Bemærk
Denne indstilling har ingen effekt, når du laver anmodninger ved hjælp af GuzzleHttp\Client::sendRequest()
. For at overholde PSR-18 returneres ethvert redirect-svar som det er.
Overfør et array af HTTP-godkendelsesparametre, der skal bruges sammen med
anmodning. Arrayet skal indeholde brugernavnet i indeks 30784729298342931195108108798498549852626573008982, adgangskoden i
indeks 307847292983429311951111879849858526573008982, og du kan eventuelt angive en indbygget godkendelsestype i
index [2]. Overgiv null
for at deaktivere autentificering for en anmodning.
Ingen
GuzzleHttp\RequestOptions::AUTH
De indbyggede godkendelsestyper er som følger:
Authorization
headeren (standardindstillingen anvendes, hvis ingen er
angivet).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Bemærk
Dette er i øjeblikket kun understøttet, når du bruger cURL-handleren, men at skabe en erstatning, der kan bruges med enhver HTTP-handler, er er planlagt.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Bemærk
Dette er i øjeblikket kun understøttet, når du bruger cURL-handleren.
Indstillingen body
bruges til at styre kroppen af en enhed
omsluttende anmodning (f.eks. PUT, POST, PATCH).
fopen()
resourcePsr\Http\Message\StreamInterface
Ingen
GuzzleHttp\RequestOptions::BODY
Denne indstilling kan indstilles til en af følgende typer:
string
// Du kan sende forespørgsler, der bruger en streng som meddelelsestekst.
$client->request('PUT', '/put', ['body' => 'foo']);
ressource returneret fra fopen()
// Du kan sende anmodninger, der bruger en streamressource som krop.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource8798498498526573008982);
Psr\Http\Message\StreamInterface
// Du kan sende anmodninger, der bruger et Guzzle-streamobjekt som krop
$stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
$client->request('POST', '/post', ['body' => $stream8stream798498498526573008982);
Bemærk
Denne indstilling kan ikke bruges med form_params
, multipart
, eller json
.
Sættes til en streng for at angive stien til en fil, der indeholder en PEM formateret klientsidecertifikat. Hvis der kræves en adgangskode, skal den sættes til et array, der indeholder stien til PEM-filen i det første array-element efterfulgt af den adgangskode, der kræves til certifikatet, i det andet arrayelement element.
Ingen
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Du skal angive cookies-indstillingen som en GuzzleHttp\Cookie\CookieJarInterface
eller false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Advarsel
Denne indstilling har kun en effekt, hvis din handler har
GuzzleHttp\Middleware::cookies
middleware. Denne middleware tilføjes
som standard, når en klient oprettes uden en handler, og tilføjes af
standard, når der oprettes en handler med >GuzzleHttp\default_handler
.
Tip
Når du opretter en klient, kan du indstille standardcookieindstillingen til true
for at bruge en delt cookiesession, der er tilknyttet klienten.
0
for at vente på ubestemt tid (standardadfærd).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]);
Bemærk
Denne indstilling skal understøttes af den HTTP-handler, der bruges til at sende en anmodning.
connect_timeout
er i øjeblikket kun understøttet af den indbyggede cURL
håndtering.
Sæt til true
eller sæt til en PHP-stream, der returneres af fopen()
til
aktivere debug output med den handler, der bruges til at sende en anmodning. For eksempel,
ved brug af cURL til at overføre anmodninger, kan cURL's verbose af CURLOPT_VERBOSE
vil blive udsendt. Når du bruger PHP stream wrapper, skal stream wrapper
notifikationer udsendes. Hvis den er indstillet til true, skrives output til
PHP's STDOUT. Hvis der er angivet en PHP-stream, skrives output til streamet.
fopen()
resourceIngen
GuzzleHttp\RequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
Hvis du kører ovenstående eksempel, vil du få noget, der ligner følgende:
* 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
Angiv, om Content-Encoding
svar (gzip,
deflate, osv.) automatisk afkodes.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Denne indstilling kan bruges til at styre, hvordan indholdskodede svarlegemer
håndteres. Som standard er decode_content
sat til true, hvilket betyder, at enhver gzippet
eller deflateret svar vil blive afkodet af Guzzle.
Når den er indstillet til false
, bliver kroppen af et svar aldrig afkodet, hvilket betyder, at bytesne passerer gennem handleren uændret.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Når den er indstillet til en streng, afkodes bytes i et svar, og strengværdien
der er givet til decode_content
indstillingen overføres som Accept-Encoding
headeren i anmodningen.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Antallet af millisekunder, der skal forsinkes, før anmodningen sendes.
null
GuzzleHttp\RequestOptions::DELAY
Styrer opførslen af overskriften "Expect: 100-Continue".
1048576
GuzzleHttp\RequestOptions::EXPECT
Sæt til true
for at aktivere overskriften "Expect: 100-Continue" for alle anmodninger
der sender en krop. Sæt til false
for at deaktivere "Expect: 100-Continue"-headeren.
header for alle anmodninger. Indstilles til et tal, så størrelsen af payload skal
være større end tallet for at sende Expect-headeren. Indstilling til et
tal sender Expect-headeren for alle anmodninger, hvor størrelsen af
nyttelast ikke kan bestemmes, eller hvor kroppen ikke kan spoles tilbage.
Som standard tilføjer Guzzle headeren "Expect: 100-Continue", når størrelsen af en anmodnings krop er større end 1 MB, og en anmodning anvender HTTP/1.1.
Bemærk
Denne indstilling har kun virkning, når du bruger HTTP/1.1. HTTP/1.0 og HTTP/2.0-protokollerne understøtter ikke overskriften "Expect: 100-Continue". Understøttelse af håndtering af "Expect: 100-Continue"-arbejdsgangen skal være implementeres af Guzzle HTTP-handlere, der anvendes af en klient.
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']);
Bemærk
Denne indstilling skal understøttes af den HTTP-håndtering, der bruges til at sende en anmodning.
force_ip_resolve
er i øjeblikket kun understøttet af den indbyggede cURL
og stream handlers.
GuzzleHttp\RequestOptions::FORM_PARAMS
Associerende array af formularfeltnavne til værdier, hvor hver værdi er en streng eller array af strenge. Sætter Content-Type-hovedet til application/x-www-w-form-urlencoded, når der ikke allerede er en Content-Type-headeren til stede.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Bemærk
form_params
kan ikke bruges med multipart
indstillingen. Du skal bruge
den ene eller den anden. Brug form_params
til application/x-www-w-form-urlencoded
anmodninger og multipart
for multipart/form-data
anmodninger.
Denne indstilling kan ikke bruges med body
, multipart
, eller 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']
]
]);
Overskrifter kan tilføjes som standardindstillinger, når du opretter en klient. Når overskrifter
anvendes som standardindstillinger, anvendes de kun, hvis den anmodning, der oprettes, er
ikke allerede indeholder den specifikke overskrift. Dette omfatter både anmodninger, der overføres
til klienten i send()
og sendAsync()
metoderne, og anmodninger
oprettet af klienten (f.eks. request()
og 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
for at deaktivere at kaste undtagelser på en HTTP-protokol
fejl (dvs. 4xx- og 5xx-svar). Undtagelser kastes som standard, når
der opstår HTTP-protokolfejl.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
Advarsel
Denne indstilling har kun en effekt, hvis din handler har
GuzzleHttp\Middleware::httpErrors
middleware. Denne middleware tilføjes
som standard, når en klient oprettes uden nogen handler, og tilføjes af
standard, når der oprettes en handler med GuzzleHttp\default_handler
.
Understøttelse af IDN (Internationalized Domain Name) (aktiveret som standard, hvis
intl
extension er tilgængelig).
true
hvis intl
udvidelsen er tilgængelig (og ICU-biblioteket er 4.6+ for PHP 7.2+), false
ellers
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
Aktiverer/deaktiverer IDN-understøttelse, kan også bruges til præcis kontrol ved at kombinere
IDNA_*-konstanter (undtagen IDNA_ERROR_*), se $options
parameteren i
idn_to_ascii()
dokumentation for flere oplysninger.
json
bruges til nemt at uploade JSON-kodede data som
kroppen af en anmodning. En Content-Type-header på application/json
vil blive
tilføjes, hvis der ikke allerede er en Content-Type-hoveddetektor i meddelelsen.json_encode()
funktion.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Her er et eksempel på at bruge tap
middleware til at se, hvilken forespørgsel der sendes over kablet.
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)
]);
Bemærk
Denne anmodningsindstilling understøtter ikke tilpasning af Content-Type-headeren
eller nogen af indstillingerne fra PHP's json_encode()
funktion. Hvis du har brug for at tilpasse disse indstillinger, skal du overdrage funktionen
JSON-kodede data selv ind i anmodningen ved hjælp af body
request
indstillingen, og du skal angive den korrekte Content-Type-header ved hjælp af indstillingen
headers
request option.
Denne indstilling kan ikke bruges med body
, form_params
, eller multipart
GuzzleHttp\RequestOptions::MULTIPART
Værdien af multipart
er et array af associative arrays, som hver indeholder følgende nøgle-værdipar:
name
: (streng, påkrævet) navnet på formularfeltetindhold
: (StreamInterface/resource/string, påkrævet) De data, der skal bruges i
formularelementet.headers
: (array) Valgfrit associerende array af brugerdefinerede overskrifter til brug med
formularelementet.filnavn
: (string) Valgfri streng, der skal sendes som filnavn i delen.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'
],
]
]);
Bemærk
multipart
kan ikke bruges med indstillingen form_params
. Du skal
bruge den ene eller den anden. Brug form_params
til application/x-www-w-form-urlencoded
anmodninger og multipart
for multipart/form-data
anmodninger.
Denne indstilling kan ikke bruges med body
, form_params
, eller json
En callable, der kaldes, når HTTP-headerne i svaret har er modtaget, men at download af kroppen endnu ikke er begyndt at blive downloadet.
GuzzleHttp\RequestOptions::ON_HEADERS
Callable accepterer et Psr\Http\Message\ResponseInterface
objekt. Hvis en undtagelse
afkaldes af callable'en, vil det løfte, der er knyttet til svaret, blive
afvises med et GuzzleHttp\Exception\RequestException
, der omslutter
undtagelse, der blev kastet.
Du kan have brug for at vide, hvilke headere og statuskoder der blev modtaget, før data kan skrives til sink'en.
// 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!');
}
}
]);
Bemærk
Når du skriver HTTP-handlere, skal funktionen on_headers
påkaldes
før der skrives data til svarets krop.
on_stats
giver dig mulighed for at få adgang til overførselsstatistikker for en
anmodning og få adgang til de lavere overførselsdetaljer på lavere niveau i handleren
der er knyttet til din klient. on_stats
er en callable, der påberåbes
når en handler er færdig med at sende en anmodning. Callbacken kaldes på
med overførselsstatistik om anmodningen, det modtagne svar eller den
fejl, der er opstået. I dataene indgår den samlede tid, der er gået
for at sende anmodningen.
GuzzleHttp\RequestOptions::ON_STATS
Callable accepterer et 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());
}
}
]);
Definerer en funktion, der skal påberåbes, når der sker fremskridt i overførslen.
Ingen
GuzzleHttp\RequestOptions::PROGRESS
Funktionen accepterer følgende positionelle argumenter:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Overfør en streng for at angive en HTTP-proxy, eller et array for at angive for at angive forskellige proxyer for forskellige protokoller.
Ingen
GuzzleHttp\RequestOptions::PROXY
Overfør en streng for at angive en proxy for alle protokoller.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Overfør et associerende array for at angive HTTP-proxyer for specifikke URI-ordninger
(f.eks. "http", "https"). Angiv et no
nøgle-værdipar for at give en liste over
værtsnavne, der ikke skal proxies til.
Bemærk
Guzzle vil automatisk udfylde denne værdi med dit miljøs
NO_PROXY
miljøvariabel. Men når du angiver en proxy
forespørgselsindstilling, er det op til dig at angive no
værdien parsed fra
miljøvariablen NO_PROXY
(f.eks. 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
]
]);
Bemærk
Du kan angive proxy-URL'er, der indeholder et skema, et brugernavn og en adgangskode.
For eksempel "http://username:[email protected]:10"
.
Associerende array af forespørgselsstrengværdier eller forespørgselsstreng, der skal tilføjes til anmodningen.
Ingen
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Forespørgselsstrenge, der er angivet i query
, vil overskrive alle værdier for forespørgselsstrenge, der er angivet i URI'en i en anmodning.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP ini indstillingGuzzleHttp\RequestOptions::READ_TIMEOUT
Timeoutet gælder for individuelle læseoperationer på et streamet organ (når indstillingen stream
er aktiveret).
$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());
Angiv, hvor kroppen af et svar skal gemmes.
fopen()
resourcePsr\Http\Message\StreamInterface
PHP temp stream
GuzzleHttp\RequestOptions::SINK
Overfør en streng for at angive stien til en fil, der skal gemme indholdet af svarteksten:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Overfør en ressource, der er returneret fra fopen()
for at skrive svaret til en PHP-stream:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Overfør et Psr\Http\Message\StreamInterface
objekt til at streame svarteksten til en åben PSR-7-stream.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Bemærk
Anmodningsindstillingen save_to
er blevet forældet til fordel for indstillingen
sink
request option. Indstillingen save_to
er nu et alias
af sink
.
Angiv stien til en fil, der indeholder en privat SSL-nøgle i PEM format. Hvis der kræves en adgangskode, skal den angives til et array, der indeholder stien til SSL-nøglen i det første array-element efterfulgt af den krævede adgangskode for certifikatet i det andet element.
Ingen
GuzzleHttp\RequestOptions::SSL_KEY
Bemærk
ssl_key
er implementeret af HTTP-handlere. Dette er i øjeblikket kun
understøttet af cURL-handleren, men kan muligvis understøttes af andre tredjeparts
handlers.
true
for at streame et svar i stedet for at downloade det hele
på forhånd.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);
}
Bemærk
Understøttelse af streamsvar skal implementeres af den HTTP-handler, der anvendes af en klient. Denne indstilling er muligvis ikke understøttet af alle HTTP-håndterer, men den grænseflade for svarobjektet forbliver den samme, uanset om den understøttes af håndteringsenheden.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Beskriver SSL-certifikatverificeringsadfærd for en anmodning.
true
for at aktivere SSL-certifikatverifikation og bruge standard
CA-pakke, der leveres af operativsystemet.false
for at deaktivere certifikatverifikation (dette er usikkert!).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]);
Hvis du ikke har brug for et specifikt certifikatpakke, tilbyder Mozilla en almindeligt anvendte CA-pakke, som kan downloades her (leveret af vedligeholderen af cURL). Når du har et CA-pakke til rådighed på disk, kan du sætte PHP ini indstillingen "openssl.cafile" til at pege på stien til filen, så du kan udelade "verify"-forespørgselsindstillingen. Meget mere detaljeret om SSL-certifikater kan findes på webstedet cURL-websted.
0
for at vente på ubestemt tid (standardadfærd).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]);