Agordu prokurilan IP por Guzzle-peto
Uzu la prokurilan opcion de Guzzle por ĉiu peto kaj komprenu konektotempolimon dependantan de la traktilo kaj eksplicitan preteriran liston.
La opcio proxy de Guzzle akceptas plenan finpunktan URL. Agordu ĝin ĉe la peto kiam nur tiu operacio devas uzi la elektitan IP.
<?php
require __DIR__ . '/vendor/autoload.php';
$client = new GuzzleHttp\Client();
$response = $client->request('GET', 'https://example.com/', [
'proxy' => 'http://203.0.113.10:8080',
'connect_timeout' => 5,
'timeout' => 15,
'http_errors' => false,
]);
echo $response->getStatusCode(), PHP_EOL;
echo (string) $response->getBody();
La ekzemplo supozas Guzzle 7 instalitan per Composer. Anstataŭigu la dokumentan adreson per vera HTTP-prokurilo de via provizanto aŭ el la listo de HTTP-prokuriloj. Konservu la celon en la peta URL: la prokurilo estas peranto, ne la elŝutata rimedo.
Ĉi tie http_errors estas false, por ke HTTP-erarrespondo restu disponebla por inspektado. Konektomalsukcesoj ankoraŭ ĵetas transigajn esceptojn. HTTPS-tunelo rifuzita dum starigo povas do malsukcesi antaŭ ol vi ricevas ordinaran retejan respondobjekton.
Kontrolu la traktilon kiam konektolimoj kondutas alimaniere
Guzzle povas uzi malsamajn HTTP-traktilojn. La dokumentaro diras, ke la enkonstruita cURL-traktilo subtenas connect_timeout. Propra traktilo aŭ medio sen PHP cURL ne nepre egalas. Kontrolu la traktilon de la aplikaĵo antaŭ ol supozi, ke kopiita tempolima opcio efikas.
Ankaŭ la ĝeneralan timeout indas agordi. Eroj de senpagaj listoj povas ĉesi respondi inter kontroloj, kaj la defaŭlto ne estas utila limdato por peto, kiu devas finiĝi rapide.
Uzado de prokurila mapo
Mapo ebligas elekti vojojn laŭ la celskemo kaj eksplicite provizi gastigantojn kiuj preteriras la prokurilon:
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
Uzu ĉi tiun tabelon anstataŭ la ĉena opcio. La ŝlosilo HTTPS elektas HTTPS-celojn; ĝia HTTP-valoro ankoraŭ priskribas la aŭskultanton de la prokurilo. Alia aŭskulta protokolo bezonas alian finpunktan agordon.
Kiam vi mem provizas la prokurilan petopcion, Guzzle atendas ankaŭ la celitajn no-valorojn de vi anstataŭ aŭtomate kopii ilin el NO_PROXY. Malplena listo utilas por izolita prokurila testo. En aplikaĵo kun intencaj preterirreguloj konservu ilin eksplicite.