È possibile personalizzare le richieste create e trasferite da un client utilizzando
Tutti i seguenti esempi utilizzano il seguente client:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Descrive il comportamento di reindirizzamento di una richiesta
[
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
'track_redirects' => false
]
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS
Impostare su false
per disabilitare i redirect.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Impostato su true
(l'impostazione predefinita) per abilitare i redirect normali con un numero massimo di 5 redirect.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
Potete anche passare un array associativo contenente le seguenti coppie chiave-valore:
max: (int, default=5) numero massimo di redirect consentiti
strict: (bool, default=false) Impostato a true per usare redirect rigorosi. I rinvii rigorosi conformi a RFC significano che le richieste di rinvio POST sono inviate come richieste POST invece di fare ciò che fa la maggior parte dei browser, cioè reindirizzare le richieste POST con richieste GET.
referer: (bool, default=false) Impostato a true per abilitare l'aggiunta dell'intestazione Referer quando si reindirizza.
protocolli: (array, default=['http', 'https']) Specifica quali protocolli sono consentiti per le richieste di reindirizzamento
on_redirect: (callable) Callable PHP che viene invocata quando un redirect viene incontrato. La callable è invocata con la richiesta originale e la risposta di reindirizzamento che è stata ricevuta. Qualsiasi valore di ritorno dalla funzione on_redirect viene ignorato.
track_redirects: (bool) Quando impostato a true
, ogni URI reindirizzato e codice di stato
incontrato sarà tracciato nella X-Guzzle-Redirect-History
e
X-Guzzle-Redirect-Status-History
rispettivamente negli header. Tutti gli URI e i
saranno memorizzati nell'ordine in cui i redirect sono stati incontrati.
Nota: Quando si tracciano i redirect l'intestazione X-Guzzle-Redirect-History
esclude l'URI della richiesta iniziale e l'header X-Guzzle-Redirect-Status-History
escluderà il codice di stato finale.
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...
Attenzione
Questa opzione ha effetto solo se il vostro gestore ha il
GuzzleHttp\Middleware::redirect
middleware. Questo middleware viene aggiunto
di default quando un client viene creato senza handler, e viene aggiunto di
di default quando si crea un gestore con GuzzleHttp\HandlerStack::create
.
Nota
Questa opzione non ha nessun effetto quando si fanno richieste usando GuzzleHttp\Client::sendRequest()
. Al fine di rimanere conformi al PSR-18, qualsiasi risposta di redirect viene restituita così com'è.
Passa un array di parametri di autenticazione HTTP da usare con la
richiesta. L'array deve contenere il nome utente nell'indice [0], la password in
indice [1], e si può opzionalmente fornire un tipo di autenticazione integrato in
index [2]. Passare null
per disabilitare l'autenticazione per una richiesta.
Nessuno
GuzzleHttp\RequestOptions::AUTH
I tipi di autenticazione incorporati sono i seguenti:
Authorization
(l'impostazione predefinita usata se non viene
specificato).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Nota
Questo è attualmente supportato solo quando si usa il gestore cURL, ma la creazione di un sostituto che può essere usato con qualsiasi gestore HTTP è prevista.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Nota
Questo è attualmente supportato solo quando si usa il gestore cURL.
L'opzione body
è usata per controllare il corpo di una
richiesta allegata (ad esempio, PUT, POST, PATCH).
fopen()
risorsaPsr\Http\Message\StreamInterface
Nessuno
GuzzleHttp\RequestOptions::BODY
Questa impostazione può essere impostata su uno dei seguenti tipi:
string
// Puoi inviare richieste che usano una stringa come corpo del messaggio.
$client->request('PUT', '/put', ['body' => 'foo']);
risorsa restituita da fopen()
// È possibile inviare richieste che utilizzano una risorsa stream come corpo.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource]);
Psr\Http\Message\StreamInterface
// Potete inviare richieste che usano un oggetto stream Guzzle come corpo
$stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
$client->request('POST', '/post', ['body' => $stream]);
Nota
Questa opzione non può essere usata con form_params
, multipart
, o json
Impostare su una stringa per specificare il percorso di un file contenente un certificato formattato in PEM formattato lato client. Se è richiesta una password, impostare a un array contenente il percorso del file PEM nel primo elemento dell'array seguito dalla password richiesta per il certificato nel secondo elemento dell'array elemento.
Nessuno
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Dovete specificare l'opzione cookies come GuzzleHttp\Cookie\CookieJarInterface
o false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Attenzione
Questa opzione ha effetto solo se il vostro gestore ha il
GuzzleHttp\Middleware::cookies
middleware. Questo middleware viene aggiunto
di default quando un client viene creato senza handler, e viene aggiunto di
di default quando si crea un gestore con GuzzleHttp\default_handler
.
Suggerimento
Quando si crea un client, si può impostare l'opzione cookie predefinita su true
per utilizzare una sessione di cookie condivisa associata al client.
0
per aspettare indefinitamente (il comportamento predefinito).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]);
Nota
Questa impostazione deve essere supportata dal gestore HTTP utilizzato per inviare una richiesta.
connect_timeout
è attualmente supportato solo dal gestore cURL
incorporato.
Impostato su true
o impostato su un flusso PHP restituito da fopen()
per
abilitare l'output di debug con il gestore utilizzato per inviare una richiesta. Per esempio,
quando si usa cURL per trasferire le richieste, il verbose di cURL di CURLOPT_VERBOSE
sarà emesso. Quando si usa lo stream wrapper PHP, le notifiche dello stream wrapper
saranno emessi. Se impostato a true, l'output viene scritto su
STDOUT di PHP. Se viene fornito uno stream PHP, l'output viene scritto nello stream.
fopen()
risorsaNessuno
GuzzleHttp\RequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
L'esecuzione dell'esempio precedente produrrebbe qualcosa come il seguente:
* 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
Specifica se Content-Encoding
le risposte (gzip,
deflate, ecc.) sono decodificate automaticamente.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Questa opzione può essere usata per controllare come i corpi di risposta codificati per il contenuto sono
gestiti. Di default, decode_content
è impostata a true, il che significa che qualsiasi risposta gzippata
o deflazionata sarà decodificata da Guzzle.
Quando è impostato su false
, il corpo di una risposta non viene mai decodificato, il che significa che i byte passano attraverso il gestore senza modifiche.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Quando è impostato a una stringa, i byte di una risposta sono decodificati e il valore della stringa
fornito all'opzione decode_content
viene passato come Accept-Encoding
dell'intestazione della richiesta.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Il numero di millisecondi di ritardo prima di inviare la richiesta.
null
GuzzleHttp\RequestOptions::DELAY
Controlla il comportamento dell'intestazione "Expect: 100-Continue".
1048576
GuzzleHttp\RequestOptions::EXPECT
Impostato a true
per abilitare l'intestazione "Expect: 100-Continue" per tutte le richieste
che invia un corpo. Impostato a false
per disabilitare l'intestazione "Expect: 100-Continue"
per tutte le richieste. Impostare su un numero in modo che la dimensione del carico utile debba
essere maggiore del numero per inviare l'intestazione Expect. Impostando un
numero invierà l'intestazione Expect per tutte le richieste in cui la dimensione del
payload non può essere determinata o dove il corpo non è riavvolgibile.
Per impostazione predefinita, Guzzle aggiunge l'intestazione "Expect: 100-Continue" quando la dimensione del corpo di una richiesta è maggiore di 1 MB e una richiesta sta usando HTTP/1.1.
Nota
Questa opzione ha effetto solo quando si usa HTTP/1.1. I protocolli HTTP/1.0 e HTTP/2.0 non supportano l'intestazione "Expect: 100-Continue". Il supporto per la gestione del flusso di lavoro "Expect: 100-Continue" deve essere implementato dai gestori HTTP di Guzzle usati da un client.
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']);
Nota
Questa impostazione deve essere supportata dal gestore HTTP utilizzato per inviare una richiesta.
force_ip_resolve
è attualmente supportato solo dai gestori integrati cURL
e dai gestori di flusso.
GuzzleHttp\RequestOptions::FORM_PARAMS
Matrice associativa di nomi di campi del modulo a valori dove ogni valore è una stringa o array di stringhe. Imposta l'intestazione Content-Type a application/x-www-form-urlencoded quando nessuna intestazione Content-Type è già presente.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Nota
form_params
non può essere usato con l'opzione multipart
. Dovrete usare
uno o l'altro. Usare form_params
per application/x-www-form-urlencoded
e multipart
per le richieste multipart/form-data
.
Questa opzione non può essere usata con body
, multipart
, o 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']
]
]);
Le intestazioni possono essere aggiunte come opzioni predefinite quando si crea un client. Quando le intestazioni
sono usate come opzioni predefinite, sono applicate solo se la richiesta che viene creata
non contiene già l'intestazione specifica. Questo include sia le richieste passate
al client nei metodi send()
e sendAsync()
e richieste
create dal client (ad esempio, request()
e 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
per disabilitare il lancio di eccezioni su un protocollo HTTP
(cioè risposte 4xx e 5xx). Le eccezioni sono lanciate per impostazione predefinita quando
vengono riscontrati errori del protocollo HTTP.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
Attenzione
Questa opzione ha effetto solo se il vostro gestore ha il
GuzzleHttp\Middleware::httpErrors
middleware. Questo middleware viene aggiunto
di default quando viene creato un client senza handler, e viene aggiunto di
di default quando si crea un gestore con GuzzleHttp\default_handler
.
Supporto per i nomi di dominio internazionalizzati (IDN) (abilitato di default se
intl
estensione è disponibile).
true
se l'estensione intl
è disponibile (e la libreria ICU è 4.6+ per PHP 7.2+), false
altrimenti
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
Abilita/disabilita il supporto IDN, può anche essere usato per un controllo preciso combinando
costanti IDNA_* (tranne IDNA_ERROR_*), vedere il parametro $options
in
idn_to_ascii()
per maggiori dettagli.
json
è usata per caricare facilmente dati codificati JSON come
corpo di una richiesta. Un'intestazione Content-Type di application/json
sarà
aggiunto se nessuna intestazione Content-Type è già presente nel messaggio.json_encode()
di PHP.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Ecco un esempio di utilizzo del tap
middleware per vedere quale richiesta viene inviata sul filo.
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)
]);
Nota
Questa opzione di richiesta non supporta la personalizzazione dell'intestazione Content-Type
o una qualsiasi delle opzioni di PHP json_encode()
funzione. Se avete bisogno di personalizzare queste impostazioni, allora dovete passare i dati
i dati codificati JSON nella richiesta usando l'opzione di richiesta body
e si deve specificare la corretta intestazione Content-Type usando l'opzione
headers
opzione di richiesta.
Questa opzione non può essere usata con body
, form_params
, o multipart
GuzzleHttp\RequestOptions::MULTIPART
Il valore di multipart
è un array di array associativi, ciascuno contenente le seguenti coppie chiave-valore:
name
: (stringa, richiesto) il nome del campo del modulocontents
: (StreamInterface/resource/stringa, richiesto) I dati da usare in
l'elemento del modulo.headers
: (array) array associativo opzionale di intestazioni personalizzate da usare con
l'elemento del modulo.filename
: (stringa) Stringa opzionale da inviare come nome del file nella parte.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'
],
]
]);
Nota
multipart
non può essere usato con l'opzione form_params
. Avrete bisogno di
usare l'una o l'altra. Usare form_params
per application/x-www-form-urlencoded
e multipart
per le richieste multipart/form-data
.
Questa opzione non può essere usata con body
, form_params
, o json
Un callable che viene invocato quando le intestazioni HTTP della risposta sono state ricevuto ma il corpo non ha ancora iniziato il download
GuzzleHttp\RequestOptions::ON_HEADERS
Il callable accetta un oggetto Psr\Http\Message\ResponseInterface
. Se un'eccezione
è lanciata dal callable, allora la promessa associata alla risposta sarà
sarà rifiutata con un GuzzleHttp\Exception\RequestException
che racchiude l
eccezione che è stata lanciata.
Potrebbe essere necessario sapere quali intestazioni e codici di stato sono stati ricevuti prima che i dati possano essere scritti sul sink.
// 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!');
}
}
]);
Nota
Quando si scrivono gestori HTTP, la funzione on_headers
deve essere invocata
prima di scrivere i dati nel corpo della risposta.
on_stats
permette di accedere alle statistiche di trasferimento di una
richiesta e accedere ai dettagli di trasferimento di livello inferiore del gestore
associato al proprio client. on_stats
è un callable che viene invocato
quando un gestore ha finito di inviare una richiesta. Il callback è invocato
con le statistiche di trasferimento della richiesta, la risposta ricevuta o l
errore incontrato. Incluso nei dati è la quantità totale di tempo impiegato
per inviare la richiesta.
GuzzleHttp\RequestOptions::ON_STATS
Il callable accetta un oggetto GuzzleHttpTransferStats
.
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());
}
}
]);
Definisce una funzione da invocare quando il trasferimento avanza.
Nessuno
GuzzleHttp\RequestOptions::PROGRESS
La funzione accetta i seguenti argomenti posizionali:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Passa una stringa per specificare un proxy HTTP, o un array per specificare diversi proxy per diversi protocolli.
Nessuno
GuzzleHttp\RequestOptions::PROXY
Passa una stringa per specificare un proxy per tutti i protocolli.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Passa un array associativo per specificare i proxy HTTP per specifici schemi URI
(cioè "http", "https"). Fornire una no
coppia chiave-valore per fornire una lista di
nomi di host che non dovrebbero essere sottoposti a proxy.
Nota
Guzzle popolerà automaticamente questo valore con il vostro ambiente
NO_PROXY
variabile d'ambiente. Tuttavia, quando si fornisce un proxy
opzione di richiesta, sta all'utente fornire il valore no
analizzato da
la variabile d'ambiente NO_PROXY
(ad esempio, 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
]
]);
Nota
È possibile fornire URL proxy che contengono uno schema, un nome utente e una password.
Per esempio, "http://username:[email protected]:10"
.
Array associativo di valori di query string o query string da aggiungere alla la richiesta.
Nessuno
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Le stringhe di query specificate nell'opzione query
sovrascriveranno tutti i valori di stringa di query forniti nell'URI di una richiesta.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
di PHP iniGuzzleHttp\RequestOptions::READ_TIMEOUT
Il timeout si applica alle singole operazioni di lettura su un corpo in streaming (quando l'opzione stream
è abilitata).
$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());
Specifica dove il corpo di una risposta sarà salvato.
fopen()
risorsaPsr\Http\Message\StreamInterface
PHP temp stream
GuzzleHttp\RequestOptions::SINK
Passa una stringa per specificare il percorso di un file che memorizzerà il contenuto del corpo della risposta:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Passa una risorsa restituita da fopen()
per scrivere la risposta in un flusso PHP:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Passa un oggetto Psr\Http\Message\StreamInterface
per trasmettere il corpo della risposta a un flusso PSR-7 aperto.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Nota
L'opzione di richiesta save_to
è stata deprecata in favore dell'opzione
sink
opzione di richiesta. Fornire l'opzione save_to
è ora un alias
di sink
.
Specificare il percorso di un file contenente una chiave SSL privata in formato PEM in formato PEM. Se è richiesta una password, allora imposta un array contenente il percorso alla chiave SSL nel primo elemento dell'array seguito dalla password richiesta per il certificato nel secondo elemento.
Nessuno
GuzzleHttp\RequestOptions::SSL_KEY
Nota
ssl_key
è implementato dai gestori HTTP. Questo è attualmente solo
supportato dal gestore cURL, ma potrebbe essere supportato da altri gestori di terze parti
gestori di terze parti.
true
per trasmettere una risposta piuttosto che scaricarla tutta
in anticipo.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);
}
Nota
Il supporto alle risposte in streaming deve essere implementato dal gestore HTTP usato da un client. Questa opzione potrebbe non essere supportata da ogni gestore HTTP, ma l'interfaccia interfaccia dell'oggetto risposta rimane la stessa indipendentemente dal fatto che sia supportata o meno dal gestore.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Descrive il comportamento di verifica del certificato SSL di una richiesta.
true
per abilitare la verifica del certificato SSL e utilizzare il bundle CA predefinito
CA fornito dal sistema operativo.false
per disabilitare la verifica del certificato (questo è insicuro!).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]);
Se non avete bisogno di un bundle di certificati specifico, allora Mozilla fornisce un bundle CA comunemente usato che può essere scaricato qui (fornito dal manutentore di cURL). Una volta che avete un bundle CA disponibile su disco, potete impostare l'impostazione PHP ini "openssl.cafile" per puntare al percorso del al file, permettendovi di omettere l'opzione di richiesta "verify". Molti più dettagli sui certificati I certificati SSL possono essere trovati sul sito sito web cURL.
0
per aspettare indefinitamente (il comportamento predefinito).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]);