Pieprasījuma iespējas

Klienta izveidotos un pārsūtītos pieprasījumus var pielāgot, izmantojot pieprasījuma opcijas. Pieprasījuma opcijas kontrolē dažādus pieprasījuma aspektus tostarp galvenes, vaicājuma virknes parametrus, laika ierobežojuma iestatījumus, pieprasījuma saturu. pieprasījumu un daudz ko citu.

Visos turpmākajos piemēros tiek izmantots šāds klients:

$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);

allow_redirects

Kopsavilkums

Apraksta pieprasījuma novirzīšanas uzvedību

Veidi
  • bool
  • array
Noklusējuma
307847298983429311951
    'max' => 5,
    'strict' => false,
    'referer' => false,
    'protocols' => ['http', 'https'],
    'track_redirects' => false
]
Pastāvīgs

GuzzleHttp\RequestOptions::ALLOW_REDIRECTS

Iestatiet false, lai atspējotu novirzīšanu.

$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302

Iestatiet true (noklusējuma iestatījums), lai iespējotu parastās pāradresācijas ar maksimālo skaitu 5 pāradresācijas.

$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200

Varat nodot arī asociatīvu masīvu, kas satur šādus atslēgu un vērtību pārus:

  • max: (int, noklusējuma=5) maksimālais atļauto novirzījumu skaits.

  • stingrs: (bool, noklusējuma=false) Iestatiet true, lai izmantotu striktus novirzīšanu. RFC prasībām atbilstošas stingras pāradresēšanas nozīmē, ka POST pāradresēšanas pieprasījumi tiek nosūtīti kā POST pieprasījumi pretstatā tam, ko dara vairums pārlūkprogrammu, proti, pāradresē POST pieprasījumus. ar GET pieprasījumiem.

  • referer: (bool, noklusējuma=false) Iestatiet true, lai ļautu pievienot Referer galveni, kad notiek pāradresācija.

  • protokoli: (masīvs, noklusējuma=['http', 'https']) Norādīts, kuri protokoli ir atļauts izmantot novirzīšanas pieprasījumiem.

  • on_redirect: (callable) PHP izsaucamais, kas tiek izsaukts, kad notiek pāradresācija. tiek sastapts. Izsaucams kopā ar sākotnējo pieprasījumu un saņemto pāradresēšanas atbildi. Jebkura atgrieztā vērtība no on_redirect funkcija tiek ignorēta.

  • track_redirects: (bool) Ja iestatīts uz true, katrs novirzītais URI un statuss sastaptais kods tiks izsekots X-Guzzle-Redirect-History un X-Guzzle-Redirect-Status-History galvenes. Visi URI un statusa kodi tiks saglabāti tādā secībā, kādā tie tika sastapti.

    Piezīme: Izsekojot novirzījumus, X-Guzzle-Redirect-History galvene izslēgs sākotnējā pieprasījuma URI un X-Guzzle-Redirect-Status-History>. galvenē netiks iekļauts galīgais statusa kods.

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

Brīdinājums

Šī opcija darbojas tikai tad, ja jūsu apstrādātājam ir GuzzleHttp\Middleware::redirect starpprogrammatūra. Šī starpprogrammatūra tiek pievienota pēc noklusējuma, kad klients tiek izveidots bez apstrādātāja, un tiek pievienota ar pēc noklusējuma, kad apstrādātājs tiek izveidots ar GuzzleHttp\HandlerStack::create.

Piezīme

Šai opcijai nav nekādas ietekmes, ja pieprasījumi tiek veikti, izmantojot GuzzleHttp\Client::sendRequest(). Lai nodrošinātu atbilstību PSR-18, jebkura pāradresēšanas atbilde tiek atgriezta tāda, kāda tā ir.

auth

Kopsavilkums

Nodod HTTP autentifikācijas parametru masīvu, ko izmantot kopā ar pieprasījumu. Šajā masīvā jāietver lietotājvārds ar indeksu 3078472989834293119510], parole ar indeksu indeksā [1], un pēc izvēles varat norādīt iebūvēto autentifikācijas veidu, kas norādīts index [2]. Nododiet null, lai atspējotu autentifikāciju pieprasījumam

Veidi
  • masīvs
  • string
  • null
Noklusējuma

Nav

Pastāvīgs

GuzzleHttp\RequestOptions::AUTH

Iebūvētie autentifikācijas veidi ir šādi:

pamata
Izmantojiet pamata HTTP autentifikāciju Autorizācija galvenē (noklusējuma iestatījums, kas tiek izmantots, ja nav norādīts neviens norādīts).
$client->request('GET', '/get', ['auth' => ['username', 'password']]);
digest
Izmantojiet digest autentifikāciju (HTTP apstrādātājam jābūt atbalstītam).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'digest']
]);

Piezīme

Pašlaik tas tiek atbalstīts tikai tad, ja tiek izmantots cURL apstrādātājs, bet izveidot aizstājēju, ko var izmantot ar jebkuru HTTP apstrādātāju. plānots.

ntlm
Izmantojiet Microsoft NTLM autentifikācija (HTTP apstrādātājam jābūt atbalstītam).
$client->request('GET', '/get', [
    'auth' => ['username', 'password', 'ntlm']
]);

Piezīme

Pašlaik tas tiek atbalstīts tikai tad, ja tiek izmantots cURL apstrādātājs.

body

Kopsavilkums

Iespēja body tiek izmantota, lai kontrolētu vienības ķermeni. (piemēram, PUT, POST, PATCH).

Veidi
  • string
  • fopen() resurss
  • Psr\Http\Message\StreamInterface
Noklusējuma

Nav

Pastāvīgs

GuzzleHttp\RequestOptions::BODY

Šo iestatījumu var iestatīt uz jebkuru no šiem veidiem:

  • string

    // Jūs varat sūtīt pieprasījumus, kuros kā ziņojuma tekstu izmanto virkni.
    $client->pieprasījums('PUT', '/put', 307847298983429311951'body' => 'foo'>);
    
  • resurss, kas atgriezts no fopen()

    // Jūs varat sūtīt pieprasījumus, kuru ķermenī tiek izmantots plūsmas resurss.
    $resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
    $client->pieprasījums('PUT', '/put', 307847298983429311951'body' => $resource]);
    
  • Psr\Http\Message\StreamInterface

    // Jūs varat sūtīt pieprasījumus, kas kā ķermeni izmanto Guzzle plūsmas objektu.
    $stream = GuzzleHttp\Psr7\Utils::streamFor('saturs...');
    $client->pieprasījums('POST', '/post', 307847298983429311951'body' => $stream]);
    

Piezīme

Šo opciju nevar izmantot kopā ar form_params, multipart vai json.

cert

Kopsavilkums

Iestatīt kā virkni, lai norādītu ceļu līdz datnei, kas satur PEM formatētu klienta puses sertifikātu. Ja tiek prasīta parole, tad iestatiet uz masīvs, kura pirmajā masīva elementā ir ceļš līdz PEM datnei. kam seko sertifikātam vajadzīgā parole otrajā masīva elementā elements.

Veidi
  • string
  • array
Noklusējuma

Nav

Pastāvīgs

GuzzleHttp\RequestOptions::CERT

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

cookies

Kopsavilkums
Norāda, vai pieprasījumā tiek vai netiek izmantoti sīkfaili un kādi sīkfaili burka jāizmanto vai kādas sīkdatnes jānosūta.
Veidi
GuzzleHttp\Cookie\CookieJarInterface
Noklusējuma
Nav
Pastāvīgs
GuzzleHttp\RequestOptions::COOKIES

Sīkfailu opcija jānorāda kā GuzzleHttp\Cookie\CookieJarInterface vai false.

$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);

Brīdinājums

Šī opcija darbojas tikai tad, ja jūsu apstrādātājam ir GuzzleHttp\Middleware::cookies starpprogrammatūra. Šī starpprogrammatūra tiek pievienota pēc noklusējuma, kad klients tiek izveidots bez apstrādātāja, un tiek pievienota ar pēc noklusējuma, ja apstrādātājs tiek izveidots ar GuzzleHttp\default_handler.

Padoms

Veidojot klientu, varat iestatīt noklusējuma sīkfailu opciju uz true lai izmantotu koplietošanas sīkfailu sesiju, kas saistīta ar klientu.

connect_timeout

Kopsavilkums
Peldviela, kas apraksta gaidāmo sekunžu skaitu, mēģinot izveidot savienojumu ar serveri. Izmantojiet 0, lai gaidītu nenoteiktu laiku (noklusējuma iestatījums).
Veidi
pludiņš
Noklusējuma
0
Pastāvīgs
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]);

Piezīme

Šim iestatījumam jābūt atbalstītam HTTP apstrādātājā, kas tiek izmantots, lai nosūtītu pieprasījumu. connect_timeout pašlaik atbalsta tikai iebūvētais cURL apstrādātājs.

debug

Kopsavilkums

Iestatīts uz true vai iestatīts uz PHP plūsmu, ko atdod fopen() uz iespējotu atkļūdošanas izvadi ar apstrādātāju, kas tiek izmantots pieprasījuma nosūtīšanai. Piemēram, ja pieprasījumu pārsūtīšanai izmanto cURL, cURL verbose CURLOPT_VERBOSE. tiks izvadīts. Izmantojot PHP plūsmas ietvarprogrammu, plūsmas ietvarprogramma tiks izsūtīti paziņojumi. Ja iestatīts uz true, izvads tiek rakstīts uz PHP STDOUT. Ja ir norādīta PHP plūsma, izvads tiek rakstīts uz šo plūsmu.

Veidi
  • bool
  • fopen() resurss
Noklusējuma

Nav

Pastāvīgs

GuzzleHttp\RequestOptions::DEBUG

$client->request('GET', '/get', ['debug' => true]);

Izpildot iepriekš minēto piemēru, tiks iegūts šāds rezultāts:

* 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

Kopsavilkums

Norādiet, vai Content-Encoding atbildes (gzip, deflate u.c.) tiek automātiski dekodēti.

Veidi
  • string
  • bool
Noklusējuma

true

Pastāvīgs

GuzzleHttp\RequestOptions::DECODE_CONTENT

Šo opciju var izmantot, lai kontrolētu, kā satura kodētas atbildes struktūras tiek apstrādāt. Pēc noklusējuma decode_content ir iestatīts uz true, kas nozīmē, ka jebkurš gziped vai deflēto atbildi Guzzle dekodēs.

Ja iestatīts uz false, atbildes ķermenis nekad netiek dekodēts, kas nozīmē, ka baiti caur apstrādātāju iziet nemainīti.

// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
    'headers'        => ['Accept-Encoding' => 'gzip'],
    'decode_content' => false
]);

Ja iestatīts uz virkni, atbildes baiti tiek atšifrēti un tiek iegūta virknes vērtība. kas sniegta decode_content opcijai, tiek nodota kā Accept-Encoding. pieprasījuma galveni.

// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);

delay

Kopsavilkums

Milisekunžu skaits, kas jāatliek pirms pieprasījuma nosūtīšanas.

Veidi
  • vesels skaitlis
  • float
Noklusējuma

null

Pastāvīgs

GuzzleHttp\RequestOptions::DELAY

sagaidīt

Kopsavilkums

Kontrolē "Expect: 100-Continue" galvenes uzvedību.

Veidi
  • bool
  • integer
Noklusējuma

1048576

Pastāvīgs

GuzzleHttp\RequestOptions::EXPECT

Iestatiet true, lai visiem pieprasījumiem iespējotu galveni "Expect: 100-Continue". kas sūta ķermeni. Iestatiet false, lai atspējotu "Expect: 100-Continue". galveni visiem pieprasījumiem. Iestatiet kā skaitli, lai ielādes lielumam būtu jābūt ir lielāka par šo skaitli, lai nosūtītu Expect galveni. Iestatot uz a skaitli, tiks nosūtīta Expect galvene visiem pieprasījumiem, kuros kravas izmērs ir lielāks par 0,5. nav iespējams noteikt, vai arī ja kravas kaste nav pārtinama.

Pēc noklusējuma Guzzle pievieno galveni "Expect: 100-Continue", ja pieprasījuma ķermeņa lielums ir lielāks par 1 MB un pieprasījumā tiek izmantots HTTP/1.1.

Piezīme

Šī opcija stājas spēkā tikai tad, ja tiek izmantots HTTP/1.1. HTTP/1.0 un HTTP/2.0 protokoli neatbalsta galveni "Expect: 100-Continue". Atbalstam, lai apstrādātu "Expect: 100-Continue" darba plūsmu, jābūt jāīsteno Guzzle HTTP apstrādātājiem, ko izmanto klients.

force_ip_resolve

Kopsavilkums
Iestatiet "v4", ja vēlaties, lai HTTP apstrādātāji izmantotu tikai ipv4 protokolu, vai "v6" ipv6 protokolam.
Veidi
virkne
Noklusējuma
null
Pastāvīgs
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']);

Piezīme

Šim iestatījumam jābūt atbalstītam HTTP apstrādātājā, kas tiek izmantots, lai nosūtītu pieprasījumu. force_ip_resolve pašlaik atbalsta tikai iebūvētais cURL un plūsmas apstrādātāji.

form_params

Kopsavilkums
Izmanto, lai nosūtītu application/x-www-form-urlencoded POST pieprasījumu.
Veidi
masīvs
Pastāvīgs
GuzzleHttp\RequestOptions::FORM_PARAMS

Asociatīvais formas lauka nosaukumu masīvs ar vērtībām, kur katra vērtība ir virkne vai virkņu masīvs. Nosaka Content-Type galveni uz application/x-www-form-urlencoded, ja Content-Type galvene jau nav norādīta. nav.

$client->request('POST', '/post', [
    'form_params' => [
        'foo' => 'bar',
        'baz' => ['hi', 'there!']
    ]
]);

Piezīme

form_params nevar izmantot ar multipart iespēju. Jums būs jāizmanto vienu vai otru. Izmantojiet form_params, lai application/x-www-form-urlencoded. pieprasījumiem un multipart multipart/form-data pieprasījumiem.

Šo opciju nevar izmantot kopā ar body, multipart vai json.

headers

Kopsavilkums
Asociatīvais pieprasījumam pievienojamo galvenu masīvs. Katra atslēga ir nosaukums, un katra vērtība ir virkne vai virkņu masīvs. kas attēlo galvenes lauka vērtības.
Veidi
masīvs
Noklusējuma iestatījumi
Nav
Pastāvīgs
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']
    ]
]);

Izveidojot klientu, galvenes var pievienot kā noklusējuma opcijas. Ja galvenes tiek izmantotas kā noklusējuma opcijas, tās tiek piemērotas tikai tad, ja tiek izveidots pieprasījums. vēl nav ietverta konkrētā galvene. Tas attiecas gan uz pieprasījumiem, kas nodoti klientam send() un sendAsync() metodēs, gan pieprasījumus izveidotās klienta metodes (piemēram, request() un 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_kļūdas

Kopsavilkums
Iestatiet uz false, lai atspējotu izņēmumu izmešanu HTTP protokolā. kļūdas (t.i., 4xx un 5xx atbildes). Izņēmumi pēc noklusējuma tiek mesti, kad tiek konstatētas HTTP protokola kļūdas.
Veidi
bool
Noklusējuma
true
Pastāvīgs
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

Brīdinājums

Šī opcija darbojas tikai tad, ja jūsu apstrādātājam ir GuzzleHttp\Middleware::httpErrors starpprogrammatūra. Šī starpprogrammatūra tiek pievienota pēc noklusējuma, kad klients tiek izveidots bez apstrādātāja, un tiek pievienota ar pēc noklusējuma, ja apstrādātājs tiek izveidots ar GuzzleHttp\default_handler.

idn_conversion

Kopsavilkums

Internacionalizēto domēna vārdu (IDN) atbalsts (iespējots pēc noklusējuma, ja intl paplašinājums ir pieejams)

Veidi
  • bool
  • int
Noklusējuma

true ja intl paplašinājums ir pieejams (un ICU bibliotēka ir 4.6+ PHP 7.2+), false citādi

Pastāvīgs

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

Ieslēdz/izslēdz IDN atbalstu, var izmantot arī precīzai kontrolei, kombinējot IDNA_* konstantes (izņemot IDNA_ERROR_*), skatīt $options parametru sadaļā idn_to_ascii() sīkāku informāciju skatīt dokumentācijā.

json

Kopsavilkums
json opcija tiek izmantota, lai viegli augšupielādētu JSON kodētus datus kā. pieprasījuma ķermenī. Content-Type galvene application/json būs šāda. ja ziņojumā jau nav Content-Type galvenes.
Veidi
Jebkurš PHP tips, ko var apstrādāt ar PHP json_encode() funkciju.
Noklusējuma
Nav
Pastāvīgs
GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);

Šeit ir piemērs, kā izmantot starpprogrammatūru tap, lai redzētu, kāds pieprasījums tiek nosūtīts pa vadu.

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

Piezīme

Šī pieprasījuma opcija neatbalsta Content-Type galvenes pielāgošanu. vai kādu no PHP json_encode() iespējām. funkciju. Ja jums ir nepieciešams pielāgot šos iestatījumus, tad jums ir jānodod funkcija JSON kodētus datus pieprasījumā jāievada pašam, izmantojot body pieprasījumu. opcija un jānorāda pareizā Content-Type galvene, izmantojot headers pieprasījuma opciju.

Šo opciju nevar izmantot kopā ar body, form_params vai multipart.

multipart

Kopsavilkums
Iestata pieprasījuma ķermeni kā multipart/form-data formu.
Veidi
masīvs
Pastāvīgs
GuzzleHttp\RequestOptions::MULTIPART

Vērtība multipart ir asociatīvo masīvu masīvs, no kuriem katrs satur šādus atslēgu un vērtību pārus:

  • nosaukums: (virkne, obligāts) veidlapas lauka nosaukums
  • saturs: (StreamInterface/resource/string, obligāts) Dati, kas jāizmanto veidlapas elementā.
  • headers: (masīvs) Neobligāts asociatīvs pielāgotu galvenu masīvs, ko izmantot ar veidlapas elementu.
  • faila nosaukums: (virkne) Neobligāta virkne, ko sūtīt kā daļas faila nosaukumu.
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'
        ],
    ]
]);

Piezīme

multipart nevar izmantot ar form_params opciju. Jums būs nepieciešams jāizmanto viena vai otra iespēja. Izmantojiet form_params, lai application/x-www-form-urlencoded. pieprasījumiem un multipart multipart/form-data pieprasījumiem.

Šo opciju nevar izmantot kopā ar body, form_params vai json.

on_headers

Kopsavilkums

Izsaucamā iespēja, kas tiek izsaukta, kad atbildes HTTP galvenēs ir ir saņemta atbilde, bet vēl nav sākta tās satura lejupielāde

Veidi
  • callable
Pastāvīgs

GuzzleHttp\RequestOptions::ON_HEADERS

Izsaucamais pieņem Psr\Http\Message\ResponseInterface objektu. Ja rodas izņēmums izsaucējs izmet, tad solījums, kas saistīts ar atbildi, būs tiks noraidīts ar GuzzleHttp\Exception\RequestException, kas ietin Izņēmums, kas tika izmests.

Pirms datu ierakstīšanas izlietnē var būt jāzina, kādi galvenes un statusa kodi tika saņemti.

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

Piezīme

Rakstot HTTP apstrādātājus, jāizsauc on_headers funkcija. pirms datu rakstīšanas atbildes korpusā.

on_stats

Kopsavilkums

on_stats ļauj jums piekļūt pārsūtīšanas statistikai no pieprasījumu un piekļūt apstrādātāja zemāka līmeņa pārsūtīšanas informācijai. kas saistīts ar jūsu klientu. on_stats ir izsaucamā iespēja, kas tiek izsaukta. kad apstrādātājs ir pabeidzis sūtīt pieprasījumu. Atgriezeniskais izsaukums tiek izsaukts ar pārsūtīšanas statistiku par pieprasījumu, saņemto atbildi, vai pieļauto kļūdu. Datos ir ietverts kopējais laiks, kas bija nepieciešams lai nosūtītu pieprasījumu.

Veidi
  • callable
Pastāvīgs

GuzzleHttp\RequestOptions::ON_STATS

Izsaucamais pieņem GuzzleHttp\TransferStats objektu.

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

Kopsavilkums

Definē funkciju, kas tiek izsaukta, kad notiek pārsūtīšanas progress.

Veidi
  • callable
Noklusējuma

Nav

Pastāvīgs

GuzzleHttp\RequestOptions::PROGRESS

Funkcija pieņem šādus pozicionālos argumentus:

  • kopējais sagaidāmais lejupielādējamo baitu skaits, nulle, ja nav zināms.
  • līdz šim lejupielādēto baitu skaits
  • kopējais paredzamais augšupielādējamo baitu skaits.
  • līdz šim augšupielādēto baitu skaits.
// Send a GET request to /get?foo=bar
$result = $client->request(
    'GET',
    '/',
    [
        'progress' => function(
            $downloadTotal,
            $downloadedBytes,
            $uploadTotal,
            $uploadedBytes
        ) {
            //do something
        },
    ]
);

proxy

Kopsavilkums

Nodod virkni, lai norādītu HTTP starpniekserveri, vai masīvu, lai norādītu dažādus starpniekus dažādiem protokoliem.

Veidi
  • string
  • array
Noklusējuma

Nav

Pastāvīgs

GuzzleHttp\RequestOptions::PROXY

Nodod virkni, lai norādītu starpniekserveri visiem protokoliem.

$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);

Nodod asociatīvu masīvu, lai norādītu HTTP starpniekus konkrētām URI shēmām (t. i., "http", "https"). Sniedziet atslēgu vērtību pāri, lai sniegtu sarakstu ar saimniekfailu nosaukumus, uz kuriem nedrīkst veikt prokreditēšanu.

Piezīme

Guzzle automātiski aizpildīs šo vērtību ar jūsu vides NO_PROXY vides mainīgo. Tomēr, norādot proxy pieprasījuma opciju, jums ir jānorāda no vērtība, kas analizēta no NO_PROXY vides mainīgo (piemēram, 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
    ]
]);

Piezīme

Varat norādīt proxy URL, kas satur shēmu, lietotājvārdu un paroli. Piemēram, "http://username:[email protected]:10".

vaicājums

Kopsavilkums

Asociatīvais vaicājuma virknes vērtību masīvs vai vaicājuma virkne, ko pievienot. pieprasījumam.

Veidi
  • masīvs
  • string
Noklusējuma

Nav

Pastāvīgs

GuzzleHttp\RequestOptions::QUERY

// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);

Pieprasījuma virknes, kas norādītas query opcijā, pārraksta visas pieprasījuma URI norādītās pieprasījuma virknes vērtības.

// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);

read_timeout

Kopsavilkums
Pludiņš, kas apraksta timeout, kas jāizmanto, lasot straumētu ķermeni.
Veidi
pludiņš
Noklusējuma
Noklusējuma vērtība ir default_socket_timeout PHP ini iestatījuma vērtība.
Pastāvīgs
GuzzleHttp\RequestOptions::READ_TIMEOUT

Laika limits attiecas uz atsevišķām lasīšanas operācijām uz straumētu ķermeni (ja ir iespējota opcija straume).

$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

Kopsavilkums

Norādiet, kur tiks saglabāts atbildes teksts.

Veidi
  • virkne (ceļš līdz datnei uz diska)
  • fopen() resurss
  • Psr\Http\Message\StreamInterface
Noklusējuma

PHP pagaidu plūsma

Pastāvīgs

GuzzleHttp\RequestOptions::SINK

Nodod virkni, lai norādītu ceļu līdz datnei, kurā tiks saglabāts atbildes ķermeņa saturs:

$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);

Nodod no fopen() saņemto resursu, lai atbildi ierakstītu PHP plūsmā:

$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);

Nodod Psr\Http\Message\StreamInterface objektu, lai straumētu atbildes ķermeni uz atvērtu PSR-7 plūsmu.

$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);

Piezīme

save_to pieprasījuma opcija ir atcelta, aizstājot to ar opciju sink pieprasījuma opciju. Iespēja save_to tagad ir aizstājvārds sink.

ssl_key

Kopsavilkums

Norādiet ceļu līdz datnei, kurā ir privātā SSL atslēga PEM formātā. formātā. Ja tiek prasīta parole, tad iestatiet uz masīvu, kas satur ceļu uz SSL atslēgu pirmajā masīva elementā, kam seko prasītā parole. sertifikāta parole otrajā elementā.

Veidi
  • string
  • array
Noklusējuma

Nav

Pastāvīgs

GuzzleHttp\RequestOptions::SSL_KEY

Piezīme

ssl_key īsteno HTTP apstrādātāji. Pašlaik tas ir tikai atbalsta cURL apstrādātājs, bet to varētu atbalstīt arī citi trešās puses apstrādātāji. apstrādātāji.

straume

Kopsavilkums
Iestatiet true, lai straumētu atbildi, nevis lejupielādētu to visu. iepriekš.
Veidi
bool
Noklusējuma
false
Pastāvīgs
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);
}

Piezīme

Straumēšanas atbildes atbalsts jāimplementē HTTP apstrādātājā, ko izmanto klientam. Šo opciju var neatbalstīt visi HTTP apstrādātāji, bet atbildes objekta interfeiss paliek nemainīgs neatkarīgi no tā, vai vai apstrādātājs to atbalsta.

sinhroni

Kopsavilkums
Iestatiet true, lai informētu HTTP apstrādātājus, ka plānojat gaidīt uz atbildi. Tas var būt noderīgi optimizācijai.
Veidi
bool
Noklusējuma
nav
Pastāvīgs
GuzzleHttp\RequestOptions::SYNCHRONOUS

pārbaudīt

Kopsavilkums

Apraksta pieprasījuma SSL sertifikāta pārbaudes uzvedību.

  • Iestatiet true, lai iespējotu SSL sertifikāta verifikāciju un izmantotu noklusējuma iestatījumu. CA paketi, ko nodrošina operētājsistēma.
  • Iestatiet false, lai atslēgtu sertifikātu verifikāciju (tas ir nedrošs!)
  • Iestatiet kā virkni, lai norādītu ceļu līdz CA saišķim, lai iespējotu verifikāciju. izmantojot pielāgotu sertifikātu.
Veidi
  • bool
  • string
Noklusējuma

true

Pastāvīgs

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

Ja jums nav nepieciešams īpašs sertifikātu komplekts, Mozilla nodrošina parasti izmantoto CA paketi, ko var lejupielādēt šeit (nodrošina cURL uzturētājs). Kad CA kopums ir pieejams vietnē diskā, varat iestatīt PHP ini iestatījumu "openssl.cafile" tā, lai tas norādītu uz ceļu pie failu, kas ļauj izlaist pieprasījuma "verify" opciju. Daudz sīkāk par SSL sertifikātus var atrast cURL vietnē.

timeout

Kopsavilkums
Peldviela, kas raksturo kopējo pieprasījuma laika ierobežojumu sekundēs. Izmantojiet 0 lai gaidītu nenoteiktu laiku (noklusējuma iestatījums).
Veidi
pludiņš
Noklusējuma
0
Pastāvīgs
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'

versija

Kopsavilkums
Protokola versija, kas jāizmanto kopā ar pieprasījumu.
Veidi
string, float
Noklusējuma
1.1
Pastāvīgs
GuzzleHttp\RequestOptions::VERSION
// Force HTTP/1.0
$request = $client->request('GET', '/get', ['version' => 1.0]);