Sie können die von einem Client erstellten und übertragenen Anfragen anpassen, indem Sie Anfrageoptionen. Anfrageoptionen steuern verschiedene Aspekte einer Anfrage einschließlich Kopfzeilen, Abfrage-String-Parameter, Timeout-Einstellungen, den Körper einer Anfrage und vieles mehr.
Alle folgenden Beispiele verwenden den folgenden Client:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Beschreibt das Umleitungsverhalten einer Anfrage
[
'max' => 5,
strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
'track_redirects' => false
]
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS
Setzen Sie diesen Wert auf false
, um Weiterleitungen zu deaktivieren.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Setzen Sie diesen Wert auf true
(die Standardeinstellung), um normale Umleitungen mit einer maximalen Anzahl von 5 Umleitungen zu aktivieren.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
Sie können auch ein assoziatives Array mit den folgenden Schlüssel-Wert-Paaren übergeben:
max: (int, default=5) maximale Anzahl der erlaubten Weiterleitungen
strict: (bool, default=false) Auf true gesetzt, um strikte Weiterleitungen zu verwenden. Strikte RFC-konforme Umleitungen bedeuten, dass POST-Umleitungsanfragen als POST-Anfragen gesendet werden und nicht wie bei den meisten Browsern POST-Anfragen mit GET-Anfragen umgeleitet werden. mit GET-Anfragen umleiten.
referer: (bool, default=false) Auf true gesetzt, um das Hinzufügen des Referer Kopfzeile bei der Weiterleitung hinzuzufügen.
protocols: (array, default=['http', 'https']) Gibt an, welche Protokolle für Umleitungsanfragen erlaubt sind.
on_redirect: (callable) PHP-Callable, das aufgerufen wird, wenn ein Redirect angetroffen wird. Die Callable wird mit der ursprünglichen Anfrage und der Umleitungsantwort, die empfangen wurde, aufgerufen. Jeder Rückgabewert der on_redirect Funktion wird ignoriert.
track_redirects: (bool) Wenn auf true
gesetzt, wird jeder umgeleitete URI und Status
Code in der X-Guzzle-Redirect-History
und
X-Guzzle-Redirect-Status-History
verfolgt. Alle URIs und
Statuscodes werden in der Reihenfolge gespeichert, in der die Umleitungen aufgetreten sind.
Hinweis: Bei der Verfolgung von Weiterleitungen wird der X-Guzzle-Redirect-History
Header
den URI der ursprünglichen Anfrage aus und der X-Guzzle-Redirect-Status-History
Header schließt den endgültigen Statuscode aus.
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...
Warnung
Diese Option hat nur dann eine Wirkung, wenn Ihr Handler über die
GuzzleHttp\Middleware::redirect
Middleware besitzt. Diese Middleware wird standardmäßig hinzugefügt
hinzugefügt, wenn ein Client ohne Handler erstellt wird, und wird standardmäßig
standardmäßig hinzugefügt, wenn ein Handler mit GuzzleHttp\HandlerStack::create
erstellt wird.
Hinweis
Diese Option hat keine Wirkung, wenn Anfragen mit GuzzleHttp\Client::sendRequest()
gestellt werden. Um mit PSR-18 konform zu bleiben, wird jede Redirect-Antwort so zurückgegeben, wie sie ist.
Übergeben Sie ein Array von HTTP-Authentifizierungsparametern zur Verwendung mit der
Anfrage zu verwenden. Das Array muss den Benutzernamen im Index [0] enthalten, das Passwort im
index [1], und Sie können optional einen eingebauten Authentifizierungstyp in
index [2]. Übergeben Sie null
, um die Authentifizierung für eine Anfrage zu deaktivieren
Keine
GuzzleHttp\RequestOptions::AUTH
Die eingebauten Authentifizierungstypen sind wie folgt:
Authorization
Header (die Standardeinstellung, wenn keine
angegeben ist).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Hinweis
Dies wird derzeit nur bei Verwendung des cURL-Handlers unterstützt, aber ein Ersatz, der mit jedem HTTP-Handler verwendet werden kann, ist geplant.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Hinweis
Dies wird derzeit nur bei Verwendung des cURL-Handlers unterstützt.
Die Option body
wird verwendet, um den Body einer Entität zu steuern
umschließenden Anfrage (z.B. PUT, POST, PATCH)
fopen()
resourcePsr\Http\Message\StreamInterface
Keine
GuzzleHttp\RequestOptions::BODY
Diese Einstellung kann auf jeden der folgenden Typen eingestellt werden:
string
// Sie können Anfragen senden, die einen String als Nachrichtentext verwenden.
$client->request('PUT', '/put', ['body' => 'foo']);
Ressource zurückgegeben von fopen()
// Sie können Anfragen senden, die eine Stream-Ressource als Body verwenden.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource]);
Psr\Http\Message\StreamInterface
// Sie können Anfragen senden, die ein Guzzle-Stream-Objekt als Body verwenden
$stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
$client->request('POST', '/post', ['body' => $stream]);
Hinweis
Diese Option kann nicht mit form_params
, multipart
, oder json
verwendet werden
Wird auf eine Zeichenfolge gesetzt, um den Pfad zu einer Datei anzugeben, die ein PEM formatiertes Client-Zertifikat enthält. Wenn ein Passwort erforderlich ist, dann setzen Sie auf ein Array, das den Pfad zur PEM-Datei im ersten Array-Element gefolgt von dem für das Zertifikat erforderlichen Passwort im zweiten Array Element.
Keine
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Sie müssen die Option Cookies als GuzzleHttp\Cookie\CookieJarInterface
oder false
angeben.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Warnung
Diese Option hat nur dann eine Wirkung, wenn Ihr Handler über die
GuzzleHttp\Middleware::cookies
Middleware besitzt. Diese Middleware wird standardmäßig hinzugefügt
wird standardmäßig hinzugefügt, wenn ein Client ohne Handler erstellt wird, und wird
standardmäßig hinzugefügt, wenn ein Handler mit GuzzleHttp\default_handler
erstellt wird.
Tipp
Wenn Sie einen Client erstellen, können Sie die Standard-Cookie-Option auf true
setzen, um eine mit dem Client verknüpfte gemeinsame Cookie-Sitzung zu verwenden.
0
, um unbegrenzt zu warten (das Standardverhalten).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]);
Hinweis
Diese Einstellung muss von dem HTTP-Handler unterstützt werden, der zum Senden einer Anfrage verwendet wird.
connect_timeout
wird derzeit nur von dem eingebauten cURL
Handler unterstützt.
Auf true
gesetzt oder auf einen PHP-Stream gesetzt, der von fopen()
zurückgegeben wird, um
die Debug-Ausgabe mit dem Handler zu aktivieren, der zum Senden einer Anfrage verwendet wird. Zum Beispiel,
bei der Verwendung von cURL zur Übertragung von Anfragen, wird cURLs verbose von CURLOPT_VERBOSE
ausgegeben werden. Wenn Sie den PHP-Stream-Wrapper verwenden, werden Stream-Wrapper
Benachrichtigungen ausgegeben werden. Wenn auf true gesetzt, wird die Ausgabe in
STDOUT von PHP geschrieben. Wenn ein PHP-Stream angegeben wird, wird die Ausgabe in den Stream geschrieben
fopen()
resourceKeine
GuzzleHttp\RequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
Die Ausführung des obigen Beispiels würde etwa Folgendes ergeben:
* 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
Geben Sie an, ob Content-Encoding
Antworten (gzip,
deflate usw.) automatisch dekodiert werden sollen.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Mit dieser Option kann gesteuert werden, wie inhaltskodierte Antwortkörper
behandelt werden. Standardmäßig ist decode_content
auf true gesetzt, was bedeutet, dass jede gzipped
oder deflatierte Antwort wird von Guzzle dekodiert.
Wenn diese Option auf false
gesetzt ist, wird der Textkörper einer Antwort nie dekodiert, d.h. die Bytes durchlaufen den Handler unverändert.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Wenn auf einen String gesetzt, werden die Bytes einer Antwort dekodiert und der String-Wert
für die Option decode_content
wird als Accept-Encoding
Header der Anfrage übergeben.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Die Anzahl der Millisekunden, die vor dem Senden der Anfrage gewartet werden soll
null
GuzzleHttp\RequestOptions::DELAY
Steuert das Verhalten der Kopfzeile "Expect: 100-Continue"
1048576
GuzzleHttp\RequestOptions::EXPECT
Auf true
gesetzt, um die Kopfzeile "Expect: 100-Continue" für alle Anfragen
die einen Body senden. Setzen Sie auf false
um den "Expect: 100-Continue" Header für alle Anfragen zu deaktivieren.
Header für alle Anfragen zu deaktivieren. Auf eine Zahl gesetzt, so dass die Größe der Nutzlast größer sein muss
größer als die Zahl sein muss, um den Expect-Header zu senden. Die Einstellung auf eine
Zahl wird der Expect-Header für alle Anfragen gesendet, bei denen die Größe der
Nutzlast nicht bestimmt werden kann oder der Body nicht zurückgespult werden kann.
Standardmäßig fügt Guzzle den Header "Expect: 100-Continue" hinzu, wenn die Größe des Body einer Anfrage größer als 1 MB ist und eine Anfrage HTTP/1.1 verwendet.
Hinweis
Diese Option ist nur bei Verwendung von HTTP/1.1 wirksam. Die Protokolle HTTP/1.0 und HTTP/2.0-Protokolle unterstützen den "Expect: 100-Continue"-Header nicht. Die Unterstützung für den "Expect: 100-Continue"-Workflow muss von Guzzle HTTP-Handlern implementiert werden, die von einem Client verwendet werden.
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']);
Hinweis
Diese Einstellung muss von dem HTTP-Handler unterstützt werden, der zum Senden einer Anfrage verwendet wird.
force_ip_resolve
wird derzeit nur von den eingebauten cURL
und Stream-Handler unterstützt.
GuzzleHttp\RequestOptions::FORM_PARAMS
Assoziatives Array von Formularfeldnamen zu Werten, wobei jeder Wert ein String oder Array von Zeichenketten ist. Setzt den Content-Type Header auf application/x-www-form-urlencoded, wenn noch kein Content-Type-Header vorhanden ist vorhanden ist.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Hinweis
form_params
kann nicht mit der Option multipart
verwendet werden. Sie müssen entweder
die eine oder die andere Option verwenden. Verwenden Sie form_params
für application/x-www-form-urlencoded
Anfragen, und multipart
für multipart/form-data
Anfragen.
Diese Option kann nicht mit body
, multipart
, oder json
verwendet werden
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']
]
]);
Kopfzeilen können bei der Erstellung eines Clients als Standardoptionen hinzugefügt werden. Wenn Kopfzeilen
als Standardoptionen verwendet werden, werden sie nur angewendet, wenn die zu erstellende Anfrage
nicht bereits die spezifische Kopfzeile enthält. Dies gilt sowohl für Anfragen, die
an den Client in den Methoden send()
und sendAsync()
übergeben werden, sowie Anfragen
die vom Client erstellt werden (z. B. request()
und 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
gesetzt, um das Auslösen von Ausnahmen bei einem HTTP-Protokoll
Fehlern (d.h. 4xx und 5xx Antworten). Ausnahmen werden standardmäßig ausgelöst, wenn
HTTP-Protokollfehler aufgetreten sind.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
Warnung
Diese Option hat nur dann eine Wirkung, wenn Ihr Handler über die
GuzzleHttp\Middleware::httpErrors
Middleware besitzt. Diese Middleware wird standardmäßig hinzugefügt
hinzugefügt, wenn ein Client ohne Handler erstellt wird, und wird standardmäßig
standardmäßig hinzugefügt, wenn ein Handler mit GuzzleHttp\default_handler
erstellt wird.
Unterstützung für internationalisierte Domainnamen (IDN) (standardmäßig aktiviert, wenn
intl
Erweiterung vorhanden ist).
true
wenn intl
Erweiterung verfügbar ist (und ICU Bibliothek ist 4.6+ für PHP 7.2+), false
sonst
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
Aktiviert/deaktiviert die IDN-Unterstützung, kann auch zur präzisen Steuerung verwendet werden, indem die
IDNA_* Konstanten (außer IDNA_ERROR_*), siehe $options
Parameter in
idn_to_ascii()
Dokumentation für weitere Details.
json
wird verwendet, um JSON-kodierte Daten einfach als den
Körper einer Anfrage hochzuladen. Ein Content-Type Header von application/json
wird
hinzugefügt, wenn noch kein Content-Type-Header in der Nachricht vorhanden ist.json_encode()
bearbeitet werden kann.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Hier ist ein Beispiel für die Verwendung der tap
Middleware, um zu sehen, welche Anfrage über die Leitung gesendet wird.
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)
]);
Hinweis
Diese Anfrageoption unterstützt nicht die Anpassung des Content-Type-Headers
oder eine der Optionen von PHPs json_encode()
Funktion. Wenn Sie diese Einstellungen anpassen müssen, dann müssen Sie die
JSON-kodierten Daten selbst in die Anfrage einfügen, indem Sie die body
request
Option und Sie müssen den richtigen Content-Type Header mit der
headers
Anforderungsoption angeben.
Diese Option kann nicht mit body
, form_params
, oder multipart
verwendet werden
GuzzleHttp\RequestOptions::MULTIPART
Der Wert von multipart
ist ein Array aus assoziativen Arrays, die jeweils die folgenden Schlüssel-Wert-Paare enthalten:
name
: (string, erforderlich) der Name des Formularfeldescontents
: (StreamInterface/resource/string, erforderlich) Die zu verwendenden Daten im
Formular-Element zu verwenden.headers
: (array) Optionales assoziatives Array von benutzerdefinierten Überschriften zur Verwendung mit
dem Formular-Element zu verwenden.filename
: (string) Optionale Zeichenfolge, die als Dateiname im Teil gesendet wird.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'
],
]
]);
Hinweis
multipart
kann nicht mit der Option form_params
verwendet werden. Sie müssen
das eine oder das andere verwenden. Verwenden Sie form_params
für application/x-www-form-urlencoded
Anfragen, und multipart
für multipart/form-data
Anfragen.
Diese Option kann nicht mit body
, form_params
, oder json
verwendet werden
Eine Callable, die aufgerufen wird, wenn die HTTP-Header der Antwort empfangen wurden empfangen wurden, der Body aber noch nicht heruntergeladen wurde.
GuzzleHttp\RequestOptions::ON_HEADERS
Die Callable akzeptiert ein Psr\Http\Message\ResponseInterface
Objekt. Wenn eine Ausnahme
ausgelöst wird, dann wird das Versprechen, das mit der Antwort verbunden ist
mit einer GuzzleHttp\Exception\RequestException
zurückgewiesen, die die
Ausnahme, die ausgelöst wurde.
Möglicherweise müssen Sie wissen, welche Header und Statuscodes empfangen wurden, bevor Daten in die Senke geschrieben werden können.
// 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!');
}
}
]);
Hinweis
Beim Schreiben von HTTP-Handlern muss die Funktion on_headers
aufgerufen werden
aufgerufen werden, bevor Daten in den Body der Antwort geschrieben werden.
on_stats
ermöglicht Ihnen den Zugriff auf die Übertragungsstatistiken einer
Anfrage und den Zugriff auf die Übertragungsdetails der unteren Ebene des mit Ihrem
der mit Ihrem Client verbunden ist. on_stats
ist eine Callable, die aufgerufen wird
wenn ein Handler das Senden einer Anfrage beendet hat. Der Callback wird aufgerufen
mit Übertragungsstatistiken über die Anfrage, die erhaltene Antwort oder den
aufgetretenen Fehler. Zu den Daten gehört auch die Gesamtzeit, die zum Senden der Anfrage
um die Anfrage zu senden.
GuzzleHttp\RequestOptions::ON_STATS
Die Callable akzeptiert ein 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());
}
}
]);
Definiert eine Funktion, die aufgerufen wird, wenn die Übertragung fortgeschritten ist.
Keine
GuzzleHttp\RequestOptions::PROGRESS
Die Funktion akzeptiert die folgenden Positionsargumente:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Übergeben Sie einen String, um einen HTTP-Proxy anzugeben, oder ein Array, um verschiedene Proxys für verschiedene Protokolle anzugeben.
Keine
GuzzleHttp\RequestOptions::PROXY
Übergeben Sie eine Zeichenkette, um einen Proxy für alle Protokolle anzugeben.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Übergeben Sie ein assoziatives Array zur Angabe von HTTP-Proxys für bestimmte URI-Schemata
(d.h. "http", "https") anzugeben. Übergeben Sie ein no
Schlüssel-Wert-Paar, um eine Liste von
Hostnamen bereitzustellen, die nicht über einen Proxy angesprochen werden sollen.
Hinweis
Guzzle füllt diesen Wert automatisch mit der Umgebungsvariablen
NO_PROXY
Umgebungsvariable. Wenn Sie jedoch eine proxy
Anforderungsoption, müssen Sie den no
Wert angeben, der aus
der Umgebungsvariablen NO_PROXY
(z.B. 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
]
]);
Hinweis
Sie können Proxy-URLs bereitstellen, die ein Schema, einen Benutzernamen und ein Passwort enthalten.
Zum Beispiel: "http://username:[email protected]:10"
.
Assoziatives Array von Query-String-Werten oder Query-String zum Hinzufügen zu der Anfrage hinzuzufügen.
Keine
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
Abfragezeichenfolgen, die in der Option query
angegeben sind, überschreiben alle Abfragezeichenfolgen, die im URI einer Anfrage angegeben sind.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP-ini-Einstellung verwendet.GuzzleHttp\RequestOptions::READ_TIMEOUT
Die Zeitüberschreitung gilt für einzelne Lesevorgänge auf einem gestreamten Body (wenn die Option stream
aktiviert ist).
$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());
Geben Sie an, wo der Textkörper einer Antwort gespeichert werden soll.
fopen()
resourcePsr\Http\Message\StreamInterface
PHP temp stream
GuzzleHttp\RequestOptions::SINK
Übergeben Sie eine Zeichenkette, um den Pfad zu einer Datei anzugeben, in der der Inhalt des Antwortkörpers gespeichert werden soll:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Übergeben Sie eine von fopen()
zurückgegebene Ressource, um die Antwort in einen PHP-Stream zu schreiben:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Übergeben Sie ein Psr\Http\Message\StreamInterface
Objekt, um den Antwortkörper an einen offenen PSR-7-Stream zu streamen.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Hinweis
Die save_to
Anfrageoption wurde zugunsten der
sink
Anforderungsoption. Die Bereitstellung der Option save_to
ist nun ein Alias
von sink
.
Geben Sie den Pfad zu einer Datei an, die einen privaten SSL-Schlüssel im PEM Format enthält. Wenn ein Passwort erforderlich ist, dann setzen Sie auf ein Array, das den Pfad zum SSL-Schlüssel im ersten Array-Element, gefolgt von dem für das Zertifikat erforderlichen Passwort im zweiten Element. für das Zertifikat im zweiten Element.
Keine
GuzzleHttp\RequestOptions::SSL_KEY
Hinweis
ssl_key
wird von HTTP-Handlern implementiert. Dies wird derzeit nur
nur vom cURL-Handler unterstützt, könnte aber auch von anderen Drittanbietern
Handlern unterstützt werden.
true
, um eine Antwort zu streamen, anstatt sie komplett herunterzuladen
im Voraus herunterzuladen.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);
}
Hinweis
Die Unterstützung von Streaming-Antworten muss von dem HTTP-Handler implementiert werden, der von Client verwendet wird. Diese Option wird möglicherweise nicht von jedem HTTP-Handler unterstützt, aber die Schnittstelle des Antwortobjekts bleibt gleich, unabhängig davon, ob ob sie vom Handler unterstützt wird oder nicht.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Beschreibt das Verhalten der SSL-Zertifikatsüberprüfung bei einer Anfrage
true
gesetzt, um die SSL-Zertifikatsüberprüfung zu aktivieren und das vom Betriebssystem bereitgestellte Standard
CA-Bündel zu verwenden, das vom Betriebssystem bereitgestellt wird.false
, um die Zertifikatsüberprüfung zu deaktivieren (dies ist unsicher!).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]);
Wenn Sie kein spezielles Zertifikatspaket benötigen, bietet Mozilla ein häufig verwendetes CA-Bündel, das heruntergeladen werden kann hier (bereitgestellt vom Betreuer von cURL). Sobald Sie ein CA-Bündel auf der Festplatte verfügbar haben auf der Festplatte haben, können Sie die PHP-ini-Einstellung "openssl.cafile" so setzen, dass sie auf den Pfad zu der Datei verweisen, so dass Sie die Anfrageoption "verify" weglassen können. Viele weitere Details über SSL-Zertifikaten finden Sie auf der Website cURL-Website.
0
um auf unbestimmte Zeit zu warten (Standardverhalten).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]);