Tetapkan IP proksi untuk permintaan Guzzle
Gunakan pilihan proxy bagi setiap permintaan Guzzle dan fahami tamat masa sambungan bergantung pada handler serta senarai pintasan eksplisit.
Pilihan proxy Guzzle menerima URL titik akhir penuh. Tetapkannya pada permintaan apabila hanya operasi itu patut menggunakan IP pilihan anda.
<?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();
Contoh mengandaikan Guzzle 7 dipasang melalui Composer. Gantikan alamat dokumentasi dengan proksi HTTP sebenar daripada penyedia atau senarai proksi HTTP. Kekalkan destinasi dalam URL permintaan: proksi ialah perantara, bukan sumber yang dimuat turun.
Di sini http_errors ialah false supaya respons ralat HTTP masih boleh diperiksa. Kegagalan sambungan tetap melemparkan pengecualian pemindahan. Oleh itu, terowong HTTPS yang ditolak semasa pembentukan boleh gagal sebelum anda menerima objek respons laman biasa.
Semak handler apabila had sambungan berkelakuan berbeza
Guzzle boleh menggunakan handler HTTP berbeza. Dokumentasinya menyatakan handler cURL terbina dalam menyokong connect_timeout. Handler tersuai atau persekitaran tanpa PHP cURL tidak semestinya setara. Semak handler aplikasi sebelum menganggap pilihan tamat masa yang disalin sedang berfungsi.
timeout keseluruhan juga wajar ditetapkan. Entri senarai percuma boleh berhenti menjawab antara semakan dan nilai lalai bukan tempoh akhir berguna bagi permintaan yang mesti selesai segera.
Menggunakan peta proksi
Peta membolehkan anda memilih laluan mengikut skema destinasi dan memberikan hos pintasan secara eksplisit:
'proxy' => [
'http' => 'http://203.0.113.10:8080',
'https' => 'http://203.0.113.10:8080',
'no' => [],
],
Gunakan tatasusunan ini menggantikan pilihan rentetan. Kunci HTTPS memilih destinasi HTTPS; nilai HTTP-nya masih menerangkan pendengar proksi. Protokol pendengar berbeza memerlukan konfigurasi titik akhir berbeza.
Apabila anda memberikan pilihan proxy permintaan sendiri, Guzzle menjangkakan anda juga memberikan nilai no yang dikehendaki, bukannya menyalinnya secara automatik daripada NO_PROXY. Senarai kosong berguna untuk ujian proksi terasing. Jika aplikasi mempunyai peraturan pintasan yang disengajakan, kekalkannya secara eksplisit.