Anfrageoptionen

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']);

allow_redirects

Zusammenfassung

Beschreibt das Umleitungsverhalten einer Anfrage

Typen
  • bool
  • array
Standard
[
    'max' => 5,
    strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    'track_redirects' => false
]
Konstante

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.

auth

Zusammenfassung

Ü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

Typen
  • array
  • string
  • null
Standard

Keine

Konstante

GuzzleHttp\RequestOptions::AUTH

Die eingebauten Authentifizierungstypen sind wie folgt:

grundlegend
Verwenden Sie grundlegende HTTP-Authentifizierung im Authorization Header (die Standardeinstellung, wenn keine angegeben ist).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
Zusammenfassung
Verwenden Sie digest authentication (muss von dem HTTP-Handler unterstützt werden).
$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.

ntlm
Verwenden Sie Microsoft NTLM-Authentifizierung (muss von dem HTTP-Handler unterstützt werden).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Hinweis

Dies wird derzeit nur bei Verwendung des cURL-Handlers unterstützt.

body

Zusammenfassung

Die Option body wird verwendet, um den Body einer Entität zu steuern umschließenden Anfrage (z.B. PUT, POST, PATCH)

Typen
  • string
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Standard

Keine

Konstante

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

cert

Zusammenfassung

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.

Typen
  • string
  • array
Standard

Keine

Konstante

GuzzleHttp\RequestOptions::CERT

$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);

cookies

Zusammenfassung
Gibt an, ob Cookies in einer Anfrage verwendet werden oder nicht oder welches Cookie jar zu verwenden oder welche Cookies zu senden sind.
Typen
GuzzleHttp\Cookie\CookieJarInterface
Standard
Keine
Konstante
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.

connect_timeout

Zusammenfassung
Fließkommazahl, die die Anzahl der Sekunden angibt, die beim Versuch, eine Verbindung zu einem zu einem Server. Verwenden Sie 0, um unbegrenzt zu warten (das Standardverhalten).
Typen
Schwimmer
Standard
0
Konstante
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.

debug

Zusammenfassung

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

Typen
  • bool
  • fopen() resource
Standard

Keine

Konstante

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

decode_content

Zusammenfassung

Geben Sie an, ob Content-Encoding Antworten (gzip, deflate usw.) automatisch dekodiert werden sollen.

Typen
  • string
  • bool
Standard

true

Konstante

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']);

delay

Zusammenfassung

Die Anzahl der Millisekunden, die vor dem Senden der Anfrage gewartet werden soll

Typen
  • ganze Zahl
  • Float
Standard

null

Konstante

GuzzleHttp\RequestOptions::DELAY

expect

Zusammenfassung

Steuert das Verhalten der Kopfzeile "Expect: 100-Continue"

Typen
  • bool
  • ganzzahlig
Standard

1048576

Konstante

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.

force_ip_resolve

Zusammenfassung
Stellen Sie "v4" ein, wenn Sie möchten, dass die HTTP-Handler nur das ipv4-Protokoll verwenden, oder "v6" für das ipv6-Protokoll.
Typen
String
Standard
null
Konstante
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.

form_params

Zusammenfassung
Dient zum Senden einer application/x-www-form-urlencoded POST-Anfrage.
Typen
Array
Konstante
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

headers

Zusammenfassung
Assoziatives Array von Kopfzeilen, die der Anfrage hinzugefügt werden. Jeder Schlüssel ist der Name einer Kopfzeile, und jeder Wert ist eine Zeichenkette oder ein Array von Zeichenketten die die Werte der Header-Felder darstellen.
Typen
Array
Standardeinstellungen
Keine
Konstante
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']]);

http_errors

Zusammenfassung
Auf 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.
Typen
bool
Standard
true
Konstante
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.

idn_conversion

Zusammenfassung

Unterstützung für internationalisierte Domainnamen (IDN) (standardmäßig aktiviert, wenn intl Erweiterung vorhanden ist).

Typen
  • bool
  • int
Standard

true wenn intl Erweiterung verfügbar ist (und ICU Bibliothek ist 4.6+ für PHP 7.2+), false sonst

Konstante

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

Zusammenfassung
Die Option 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.
Typen
Jeder PHP-Typ, der mit der PHP-Funktion json_encode() bearbeitet werden kann.
Standard
Keine
Konstante
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

multipart

Zusammenfassung
Setzt den Körper der Anfrage auf ein multipart/form-data Formular.
Typen
Array
Konstante
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 Formularfeldes
  • contents: (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

on_headers

Zusammenfassung

Eine Callable, die aufgerufen wird, wenn die HTTP-Header der Antwort empfangen wurden empfangen wurden, der Body aber noch nicht heruntergeladen wurde.

Typen
  • callable
Konstante

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

Zusammenfassung

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.

Typen
  • callable
Konstante

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());
        }
    }
]);

progress

Zusammenfassung

Definiert eine Funktion, die aufgerufen wird, wenn die Übertragung fortgeschritten ist.

Typen
  • callable
Standard

Keine

Konstante

GuzzleHttp\RequestOptions::PROGRESS

Die Funktion akzeptiert die folgenden Positionsargumente:

  • die Gesamtzahl der erwarteten heruntergeladenen Bytes, Null, wenn unbekannt
  • die Anzahl der bisher heruntergeladenen Bytes
  • die Gesamtzahl der zu erwartenden hochgeladenen Bytes
  • die Anzahl der bisher hochgeladenen Bytes
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Zusammenfassung

Übergeben Sie einen String, um einen HTTP-Proxy anzugeben, oder ein Array, um verschiedene Proxys für verschiedene Protokolle anzugeben.

Typen
  • string
  • array
Standard

Keine

Konstante

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".

query

Zusammenfassung

Assoziatives Array von Query-String-Werten oder Query-String zum Hinzufügen zu der Anfrage hinzuzufügen.

Typen
  • array
  • string
Standard

Keine

Konstante

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']]);

read_timeout

Zusammenfassung
Fließkommazahl, die die Zeitüberschreitung beim Lesen eines gestreamten Körpers beschreibt
Typen
Schwimmer
Standard
Standardmäßig wird der Wert der default_socket_timeout PHP-ini-Einstellung verwendet.
Konstante
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());

sink

Zusammenfassung

Geben Sie an, wo der Textkörper einer Antwort gespeichert werden soll.

Typen
  • string (Pfad zur Datei auf der Festplatte)
  • fopen() resource
  • Psr\Http\Message\StreamInterface
Standard

PHP temp stream

Konstante

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.

ssl_key

Zusammenfassung

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.

Typen
  • string
  • array
Standard

Keine

Konstante

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.

stream

Zusammenfassung
Setzen Sie diese Option auf true, um eine Antwort zu streamen, anstatt sie komplett herunterzuladen im Voraus herunterzuladen.
Typen
bool
Standard
false
Konstante
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.

synchron

Zusammenfassung
Setzen Sie diesen Wert auf true, um HTTP-Handler zu informieren, dass Sie beabsichtigen, auf die Antwort zu warten. Dies kann für Optimierungen nützlich sein.
Typen
bool
Standard
keine
Konstante
GuzzleHttp\RequestOptions::SYNCHRONOUS

verify

Zusammenfassung

Beschreibt das Verhalten der SSL-Zertifikatsüberprüfung bei einer Anfrage

  • Auf 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.
  • Setzen Sie auf false, um die Zertifikatsüberprüfung zu deaktivieren (dies ist unsicher!).
  • Auf eine Zeichenkette setzen, um den Pfad zu einem CA-Bündel anzugeben, um die Überprüfung unter Verwendung eines benutzerdefinierten Zertifikats.
Typen
  • bool
  • string
Standard

true

Konstante

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.

timeout

Zusammenfassung
Fließkommazahl, die den gesamten Timeout der Anfrage in Sekunden angibt. Verwenden Sie 0 um auf unbestimmte Zeit zu warten (Standardverhalten).
Typen
Schwimmer
Standard
0
Konstante
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'

version

Zusammenfassung
Protokollversion, die für die Anfrage verwendet werden soll.
Typen
String, Float
Standard
1.1
Konstante
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);