Voit mukauttaa asiakkaan luomia ja siirtämiä pyyntöjä käyttämällä seuraavia tapoja request options. Pyyntövaihtoehdot ohjaavat pyynnön eri näkökohtia mukaan lukien otsikot, kyselymerkkijonoparametrit, aikakatkaisuasetukset, kyselyn runko ja pyynnön sisältöä ja paljon muuta.
Kaikki seuraavat esimerkit käyttävät seuraavaa asiakasta:
$client = new GuzzleHttp\Client(['base_uri' => 'http://httpbin.org']);
Kuvaa pyynnön uudelleenohjauskäyttäytymistä
[
'max' => 5,
'strict' => false,
'referer' => false,
'protocols' => ['http', 'https'],
'track_redirects' => false
]
GuzzleHttp\RequestOptions::ALLOW_REDIRECTS
Aseta false
, jos haluat poistaa uudelleenohjaukset käytöstä.
$res = $client->request('GET', '/redirect/3', ['allow_redirects' => false]);
echo $res->getStatusCode();
// 302
Aseta true
arvoon true
(oletusasetus) ottaaksesi käyttöön normaalit uudelleenohjaukset, joiden enimmäismäärä on 5 uudelleenohjausta.
$res = $client->request('GET', '/redirect/3');
echo $res->getStatusCode();
// 200
Voit myös välittää assosiatiivisen matriisin, joka sisältää seuraavat avain-arvoparit:
max: (int, oletus=5) sallittujen uudelleenohjausten enimmäismäärä
strict: (bool, default=false) Asetetaan arvoksi true, jos halutaan käyttää tiukkoja uudelleenohjauksia. Strict RFC:n mukaiset uudelleenohjaukset tarkoittavat, että POST-uudelleenohjauspyynnöt lähetetään muodossa POST-pyynnöt vs. se, mitä useimmat selaimet tekevät eli ohjaavat POST-pyynnöt uudelleen. GET-pyynnöillä.
referer: (bool, default=false) Asetetaan arvoksi true, jos halutaan sallia Refererin lisääminen. otsikon lisääminen uudelleenohjauksen yhteydessä
pöytäkirjat: (array, default=['http', 'https']) Määritetään, mitkä protokollat ovat sallitaan uudelleenohjauspyynnöissä
on_redirect: (callable) PHP:n callable, joka kutsutaan, kun uudelleenohjaus tapahtuu. kohdataan. Kutsuttavaa kutsutaan alkuperäisen pyynnön ja saatu uudelleenohjausvastaus. Kaikki on_redirect-kutsun paluuarvot funktiota ei oteta huomioon.
track_redirects: (bool) Kun arvoksi asetetaan true
, jokainen uudelleenohjattu URI ja status
koodi seurataan X-Guzzle-Redirect-History
ja X-Guzzle-Redirect-History
ja
X-Guzzle-Redirect-Status-History
-otsikot. Kaikki URI:t ja
tilakoodit tallennetaan siinä järjestyksessä, jossa uudelleenohjaukset kohdattiin
Huomautus: Kun seurataan uudelleenohjauksia, X-Guzzle-Redirect-History
-otsikko on seuraava
ei sisällä alkuperäisen pyynnön URI:tä ja X-Guzzle-Redirect-Status-History
-otsikkoa.
otsikko sulkee pois lopullisen tilakoodin
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...
Varoitus
Tällä vaihtoehdolla on vaikutusta vain, jos käsittelijälläsi on ominaisuus
GuzzleHttp\Middleware::redirect
middleware. Tämä väliohjelmisto lisätään
oletusarvoisesti, kun asiakas luodaan ilman käsittelijää, ja se lisätään by
oletusarvoisesti, kun käsittelijää luodaan GuzzleHttp\HandlerStack::create
.
Huomautus
Tällä vaihtoehdolla ei ole vaikutusta, kun pyyntöjä tehdään käyttämällä GuzzleHttp\Client::sendRequest()
. PSR-18:n noudattamiseksi kaikki uudelleenohjausvastaukset palautetaan sellaisenaan.
Luovuta joukko HTTP-todennusparametreja, joita voidaan käyttää yhdessä
pyynnön kanssa. Joukon on sisällettävä käyttäjänimi indeksissä [0], salasana indeksissä
indeksissä [1], ja voit valinnaisesti antaa sisäänrakennetun todennustyypin kohdassa
index [2]. Syötä null
, jos haluat poistaa pyynnön todennuksen käytöstä
Ei mitään
GuzzleHttp\RequestOptions::AUTH
Sisäänrakennetut todennustyypit ovat seuraavat:
Authorization
-otsakkeessa (oletusasetus, jota käytetään, jos mikään ei ole käytössä.
määritetty).$client->request('GET', '/get', ['auth' => ['username', 'password']]);
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'digest']
]);
Huomautus
Tätä tuetaan tällä hetkellä vain cURL-käsittelijää käytettäessä, mutta korvaavan vaihtoehdon luominen, jota voidaan käyttää minkä tahansa HTTP-käsittelijän kanssa, on suunnitteilla.
$client->request('GET', '/get', [
'auth' => ['username', 'password', 'ntlm']
]);
Huomautus
Tätä tuetaan tällä hetkellä vain käytettäessä cURL-käsittelijää.
body
-vaihtoehtoa käytetään olion rungon hallintaan.
ympäröivää pyyntöä (esim. PUT, POST, PATCH)
fopen()
resourcePsr\Http\Message\StreamInterface
Ei mitään
GuzzleHttp\RequestOptions::BODY
Tämä asetus voidaan asettaa mille tahansa seuraavista tyypeistä:
string
// Voit lähettää pyyntöjä, jotka käyttävät viestin runkona merkkijonoa.
$client->request('PUT', '/put', ['body' => 'foo']);
resurssi, joka palautetaan fopen()
// Voit lähettää pyyntöjä, jotka käyttävät stream-resurssia runkona.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('http://httpbin.org', 'r');
$client->request('PUT', '/put', ['body' => $resource]);
Psr\Http\Message\StreamInterface
// Voit lähettää pyyntöjä, jotka käyttävät runkona Guzzle stream-objektia.
$stream = GuzzleHttp\Psr7\Utils::streamFor('contents...');
$client->request('POST', '/post', ['body' => $stream]);
Huomautus
Tätä vaihtoehtoa ei voi käyttää form_params
, multipart
tai json
kanssa.
Asetetaan merkkijonoksi, jolla määritetään polku tiedostoon, joka sisältää PEM-tiedoston. muotoisen asiakaspuolen varmenteen. Jos salasana vaaditaan, aseta arvoksi array, joka sisältää PEM-tiedoston polun ensimmäisenä array-elementtinä. ja sen jälkeen varmenteeseen vaadittava salasana toisessa array-elementissä. elementti.
Ei mitään
GuzzleHttp\RequestOptions::CERT
$client->request('GET', '/', ['cert' => ['/path/server.pem', 'password']]);
GuzzleHttp\Cookie\CookieJarInterface
GuzzleHttp\RequestOptions::COOKIES
Sinun on määritettävä evästeet-vaihtoehto GuzzleHttp\Cookie\CookieJarInterface
tai false
.
$jar = new \GuzzleHttp\Cookie\CookieJar();
$client->request('GET', '/get', ['cookies' => $jar]);
Varoitus
Tällä vaihtoehdolla on vaikutusta vain, jos käsittelijälläsi on ominaisuus
GuzzleHttp\Middleware::cookies
middleware. Tämä väliohjelmisto lisätään
oletusarvoisesti, kun asiakas luodaan ilman käsittelijää, ja se lisätään by
oletusarvoisesti, kun luodaan käsittelijä GuzzleHttp\default_handler
.
Vihje
Kun luot asiakasta, voit asettaa oletusarvoiseksi evästeasetukseksi true
.
käyttääksesi jaettua evästeistuntoa, joka on liitetty asiakkaaseen.
0
odottaaksesi loputtomiin (oletuskäyttäytyminen).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]);
Huomautus
Pyynnön lähettämiseen käytettävän HTTP-käsittelijän on tuettava tätä asetusta.
connect_timeout
on tällä hetkellä tuettu vain sisäänrakennetussa cURL
käsittelijä.
Asetetaan true
tai asetetaan fopen()
palauttama PHP-virta to
ottaa käyttöön debug-tulostuksen pyynnön lähettämiseen käytetyn käsittelijän kanssa. Esim,
kun käytetään cURL:ää pyyntöjen siirtämiseen, cURL:n verbose CURLOPT_VERBOSE
lähetetään. Kun käytetään PHP:n stream-kääre, stream-kääreen
ilmoitukset lähetetään. Jos arvoksi asetetaan true, tuloste kirjoitetaan osoitteeseen
PHP:n STDOUT:iin. Jos PHP-virta annetaan, tuloste kirjoitetaan virtaan
fopen()
resourceEi mitään
GuzzleHttp\RequestOptions::DEBUG
$client->request('GET', '/get', ['debug' => true]);
Yllä olevan esimerkin suorittaminen tuottaisi seuraavanlaisen tuloksen:
* 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
Määritä, onko Content-Encoding
vastaukset (gzip,
deflate jne.) puretaan automaattisesti.
true
GuzzleHttp\RequestOptions::DECODE_CONTENT
Tämän vaihtoehdon avulla voidaan hallita sitä, miten sisällön koodatut vastausrungot ovat
käsitellään. Oletusarvoisesti decode_content
on true, mikä tarkoittaa, että kaikki gzi-pakatut
tai deflatoitu vastaus puretaan Guzzlessa.
Kun asetuksena on false
, vastauksen runkoa ei koskaan pureta, eli tavut kulkevat käsittelijän läpi muuttumattomina.
// Request gzipped data, but do not decode it while downloading
$client->request('GET', '/foo.js', [
'headers' => ['Accept-Encoding' => 'gzip'],
'decode_content' => false
]);
Kun arvoksi asetetaan merkkijono, vastauksen tavut puretaan ja merkkijonon arvo puretaan.
decode_content
-vaihtoehdolle annettu arvo välitetään Accept-Encoding
-arvona.
otsakkeessa.
// Pass "gzip" as the Accept-Encoding header.
$client->request('GET', '/foo.js', ['decode_content' => 'gzip']);
Millisekuntien määrä, joka viivytetään ennen pyynnön lähettämistä.
null
GuzzleHttp\RequestOptions::DELAY
Ohjaa "Expect: 100-Continue" -otsikon käyttäytymistä.
1048576
GuzzleHttp\RequestOptions::EXPECT
Aseta arvoksi true
ottaaksesi käyttöön "Expect: 100-Continue" -otsikon kaikissa pyynnöissä.
jotka lähettävät rungon. Aseta arvoksi false
, jos haluat poistaa "Expect: 100-Continue" -otsikon käytöstä.
otsikko kaikille pyynnöille. Asetetaan numeroksi, jotta hyötykuorman koon on oltava
oltava suurempi kuin luku, jotta Expect-otsake voidaan lähettää. Asettaminen arvoon
numero lähettää Expect-otsakkeen kaikille pyynnöille, joissa maksupohjan koko on
hyötykuorman kokoa ei voida määrittää tai joissa runko ei ole kelautuva.
Oletusarvoisesti Guzzle lisää "Expect: 100-Continue"-otsikon, kun pyynnön rungon koko on yli 1 MB ja pyyntö käyttää HTTP/1.1:tä.
Huomautus
Tämä asetus vaikuttaa vain käytettäessä HTTP/1.1:tä. HTTP/1.0 ja HTTP/2.0-protokollat eivät tue "Expect: 100-Continue"-otsikkoa. "Expect: 100-Continue"-työnkulun käsittelyn tuen on oltava asiakkaan käyttämien Guzzle HTTP-käsittelijöiden on toteutettava.
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']);
Huomautus
Pyynnön lähettämiseen käytettävän HTTP-käsittelijän on tuettava tätä asetusta.
force_ip_resolve
tuetaan tällä hetkellä vain sisäänrakennetussa cURL:ssä.
ja stream-käsittelijät.
GuzzleHttp\RequestOptions::FORM_PARAMS
Lomakekentän nimien assosiatiivinen joukko arvoihin, joissa jokainen arvo on merkkijono tai merkkijonojen joukko. Asettaa Content-Type-otsikon arvoksi application/x-www-form-urlencoded, jos Content-Type-otsikkoa ei ole jo annettu. läsnä.
$client->request('POST', '/post', [
'form_params' => [
'foo' => 'bar',
'baz' => ['hi', 'there!']
]
]);
Huomautus
form_params
ei voi käyttää multipart
-vaihtoehdon kanssa. Sinun on käytettävä
jompaa kumpaa. Käytä form_params
application/x-www-form-urlencoded
varten.
pyyntöihin ja multipart
multipart/form-data
pyyntöihin.
Tätä vaihtoehtoa ei voi käyttää body
, multipart
tai json
kanssa.
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']
]
]);
Otsikot voidaan lisätä oletusasetuksina asiakasta luotaessa. Kun otsikot
käytetään oletusasetuksina, niitä sovelletaan vain, jos luotava pyyntö on
ei jo sisällä kyseistä otsikkoa. Tämä koskee sekä pyyntöjä, jotka on välitetty
asiakkaalle send()
ja sendAsync()
-menetelmillä, sekä pyyntöjä
asiakkaan luomat (esim. request()
ja 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
, jos haluat estää poikkeusten heittämisen HTTP-protokollassa.
virheet (eli 4xx- ja 5xx-vastaukset). Poikkeuksia heitetään oletusarvoisesti, kun
HTTP-protokollan virheitä kohdataan.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
Varoitus
Tällä vaihtoehdolla on vaikutusta vain, jos käsittelijälläsi on ominaisuus
GuzzleHttp\Middleware::httpErrors
middleware. Tämä väliohjelmisto lisätään
oletusarvoisesti, kun asiakas luodaan ilman käsittelijää, ja se lisätään by
oletusarvoisesti, kun luodaan käsittelijä GuzzleHttp\default_handler
avulla.
IDN-tuki (Internationalized Domain Name) (oletusarvoisesti käytössä, jos
intl
-laajennus on käytettävissä)
true
jos intl
laajennus on saatavilla (ja ICU-kirjasto on 4.6+ PHP 7.2+:lle), false
muutoin
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
Ottaa IDN-tuen käyttöön tai poistaa sen käytöstä, voidaan myös käyttää tarkkaan ohjaukseen yhdistämällä
IDNA_*-vakiot (paitsi IDNA_ERROR_*), katso $options
-parametrin parametri kohdassa
idn_to_ascii()
dokumentaatiossa lisätietoja.
json
-vaihtoehtoa käytetään JSON-koodattujen tietojen lataamiseen helposti.
pyynnön runkona. Content-Type-otsakkeen application/json
tulee olla
lisätään, jos viestissä ei jo ole Content-Type-otsikkoa.json_encode()
toiminnolla.GuzzleHttp\RequestOptions::JSON
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
Tässä on esimerkki tap
väliohjelmiston käytöstä nähdäksesi, mitä pyyntöjä lähetetään.
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)
]);
Huomautus
Tämä pyyntövaihtoehto ei tue Content-Type-otsikon mukauttamista.
tai PHP:n json_encode() vaihtoehtoja.
funktiota. Jos haluat mukauttaa näitä asetuksia, sinun on välitettävä funktio
JSON-koodatut tiedot itse pyyntöön body
-pyynnön avulla.
vaihtoehdon avulla ja sinun on määritettävä oikea Content-Type-otsake käyttämällä vaihtoehtoa
headers
-vaihtoehto.
Tätä vaihtoehtoa ei voi käyttää body
, form_params
tai multipart
kanssa.
GuzzleHttp\RequestOptions::MULTIPART
multipart
arvo on assosiatiivisten matriisien joukko, joista jokainen sisältää seuraavat avain-arvoparit:
name
: (string, pakollinen) lomakekentän nimisisältö
: (StreamInterface/resource/string, pakollinen) Tiedot, joita käytetään kohdassa
lomake-elementissä.headers
: (array) Valinnainen assosiatiivinen joukko mukautettuja otsikoita, joita käytetään yhdessä
lomake-elementin kanssa.tiedostonimi
: (string) Valinnainen merkkijono, joka lähetetään osan tiedostonimenä.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'
],
]
]);
Huomautus
multipart
ei voi käyttää form_params
-vaihtoehdon kanssa. Sinun täytyy
käyttää jompaakumpaa. Käytä form_params
application/x-www-form-urlencoded
-vaihtoehtoa.
pyyntöihin ja multipart
multipart/form-data
pyyntöihin.
Tätä vaihtoehtoa ei voi käyttää body
, form_params
tai json
kanssa.
Kutsuttavaa, jota kutsutaan, kun vastauksen HTTP-otsakkeissa on ollut vastaanotettu, mutta vastauksen runko ei ole vielä alkanut latautua
GuzzleHttp\RequestOptions::ON_HEADERS
Kutsuttava ominaisuus hyväksyy Psr\Http\Message\ResponseInterface
-olion. Jos poikkeus
heitetään kutsuttavalla, vastaukseen liittyvä lupaus on
hylätään GuzzleHttp\Exception\RequestException
-oliolla, joka kietoo ympärilleen -olion.
heitetty poikkeus.
Sinun on ehkä tiedettävä, mitä otsikoita ja tilakoodeja vastaanotettiin, ennen kuin tiedot voidaan kirjoittaa nieluun.
// 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!');
}
}
]);
Huomautus
Kun kirjoitetaan HTTP-käsittelijöitä, on_headers
-funktiota on kutsuttava.
ennen tietojen kirjoittamista vastauksen runkoon.
on_stats
avulla voit päästä käsiksi siirtotilastoihin.
pyyntöön ja päästä käsittelijän alemman tason siirtotietoihin.
joka liittyy asiakkaaseesi. on_stats
on callable, jota kutsutaan seuraavasti
kun käsittelijä on lopettanut pyynnön lähettämisen. Takaisinkutsua kutsutaan
siirtotilastojen kanssa pyynnöstä, vastaanotetusta vastauksesta tai
kohdatusta virheestä. Tietoihin sisältyy kokonaisaika, joka kului
pyynnön lähettämiseen kulunut aika.
GuzzleHttp\RequestOptions::ON_STATS
Kutsuttava ominaisuus hyväksyy GuzzleHttp\TransferStats
objektin.
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());
}
}
]);
Määrittää funktion, jota kutsutaan, kun siirto edistyy.
Ei mitään
GuzzleHttp\RequestOptions::PROGRESS
Funktio hyväksyy seuraavat sijaintiargumentit:
// Send a GET request to /get?foo=bar
$result = $client->request(
'GET',
'/',
[
'progress' => function(
$downloadTotal,
$downloadedBytes,
$uploadTotal,
$uploadedBytes
) {
//do something
},
]
);
Anna merkkijono HTTP-välityspalvelimen määrittämiseksi tai joukko HTTP-välityspalvelimen määrittämiseksi. eri välittäjiä eri protokollia varten
Ei mitään
GuzzleHttp\RequestOptions::PROXY
Anna merkkijono määrittääksesi välityspalvelimen kaikkia protokollia varten.
$client->request('GET', '/', ['proxy' => 'http://localhost:8125']);
Välitä assosiatiivinen joukko HTTP-välittäjien määrittelemiseksi tietyille URI-skeemoille.
(esim. "http", "https"). Anna no
avain-arvopari, joka antaa luettelon
isäntänimiä, joihin ei pitäisi tehdä välityspalvelua.
Huomautus
Guzzle täyttää tämän arvon automaattisesti ympäristösi arvolla
NO_PROXY
ympäristömuuttuja. Kun kuitenkin annat proxy
pyyntövaihtoehtoa, sinun on annettava no
arvo, joka on jäsennetty osoitteesta
NO_PROXY
-ympäristömuuttujasta.
(esim. 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
]
]);
Huomautus
Voit antaa välityspalvelimen URL-osoitteita, jotka sisältävät järjestelmän, käyttäjänimen ja salasanan.
Esimerkiksi "http://username:[email protected]:10"
.
Assosiatiivinen joukko kyselymerkkijonon arvoja tai kyselymerkkijono, johon lisätään kyselymerkkijono. pyyntöön
Ei mitään
GuzzleHttp\RequestOptions::QUERY
// Send a GET request to /get?foo=bar
$client->request('GET', '/get', ['query' => ['foo' => 'bar']]);
query
-vaihtoehdossa määritetyt kyselymerkkijonot korvaavat kaikki pyynnön URI:ssa annetut kyselymerkkijonoarvot.
// Send a GET request to /get?foo=bar
$client->request('GET', '/get?abc=123', ['query' => ['foo' => 'bar']]);
default_socket_timeout
PHP ini -asetuksen arvo.GuzzleHttp\RequestOptions::READ_TIMEOUT
Aikakatkaisu koskee yksittäisiä lukutoimintoja suoratoistokappaleelle (kun stream
-vaihtoehto on käytössä).
$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());
Määritä, mihin vastauksen runko tallennetaan.
fopen()
resourcePsr\Http\Message\StreamInterface
PHP temp stream
GuzzleHttp\RequestOptions::SINK
Anna merkkijono, jolla määritetään polku tiedostoon, joka tallentaa vastauksen rungon sisällön:
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']);
Syötä fopen()
:lla palautettu resurssi kirjoittaaksesi vastauksen PHP-virtaan:
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$client->request('GET', '/stream/20', ['sink' => $resource]);
Luovuta Psr\Http\Message\StreamInterface
-olio vastauksen rungon siirtämiseksi avoimeen PSR-7-virtaan.
$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');
$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);
$client->request('GET', '/stream/20', ['save_to' => $stream]);
Huomautus
save_to
-pyyntövaihtoehto on poistettu käytöstä ja tilalle on otettu -vaihtoehto.
sink
-pyyntövaihtoehdon hyväksi. save_to
-vaihtoehdon tarjoaminen on nyt alias
sink
-vaihtoehdosta.
Määritä polku tiedostoon, joka sisältää yksityisen SSL-avaimen PEM-muodossa. muodossa. Jos salasana vaaditaan, aseta joukko, joka sisältää polun. SSL-avaimeen ensimmäisenä array-elementtinä, jota seuraa vaadittu salasana. varmenteeseen vaadittava salasana toisessa elementissä.
Ei mitään
GuzzleHttp\RequestOptions::SSL_KEY
Huomautus
ssl_key
toteutetaan HTTP-käsittelijöillä. Tämä on tällä hetkellä vain
cURL-käsittelijän tukema, mutta sitä voivat tukea myös muut kolmannen osapuolen tuottamat
käsittelijät.
true
, jos haluat suoratoistaa vastauksen sen sijaan, että lataisit sen kokonaan.
etukäteen.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);
}
Huomautus
Streaming-vastauksen tuki on toteutettava HTTP-käsittelijässä, jota käyttää asiakas käyttää. Kaikki HTTP-käsittelijät eivät välttämättä tue tätä vaihtoehtoa, mutta ominaisuuden vastausobjektin rajapinta pysyy samana riippumatta siitä, onko tai onko käsittelijä tukee sitä.
GuzzleHttp\RequestOptions::SYNCHRONOUS
Kuvaa pyynnön SSL-varmenteen tarkistuskäyttäytymistä.
true
ottaaksesi SSL-varmenteen tarkistuksen käyttöön ja käyttääksesi oletusarvoista
CA-pakettia, jonka käyttöjärjestelmä tarjoaa.false
, jos haluat poistaa varmenteen tarkistuksen käytöstä (tämä ei ole turvallista!)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]);
Jos et tarvitse tiettyä varmennepakettia, Mozilla tarjoaa yleisesti käytetyn varmentajapaketin, jonka voi ladata osoitteesta täältä (jonka tarjoaa cURL:n ylläpitäjä). Kun CA-paketti on saatavilla osoitteessa levyllä, voit asettaa "openssl.cafile" PHP ini -asetuksen osoittamaan polkua osoitteeseen tiedostoon, jolloin voit jättää "verify"-pyyntövaihtoehdon pois. Paljon yksityiskohtaisempaa tietoa SSL-varmenteista löytyy osoitteesta cURL-sivustolta.
0
odottaaksesi loputtomiin (oletuskäyttäytyminen).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]);