ជម្រើស proxy របស់ Guzzle ទទួល URL ចំណុចចុងពេញលេញ។ កំណត់វាលើសំណើនៅពេលមានតែប្រតិបត្តិការនោះត្រូវប្រើ 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();

ឧទាហរណ៍សន្មត់ថាបានដំឡើង Guzzle 7 តាម Composer។ ជំនួសអាសយដ្ឋានឯកសារដោយប្រូកស៊ី HTTP ពិតពីអ្នកផ្គត់ផ្គង់ឬបញ្ជីប្រូកស៊ី HTTP។ ទុកគោលដៅក្នុង URL សំណើ។ ប្រូកស៊ីជាអ្នកកណ្ដាល មិនមែនធនធានដែលកំពុងទាញយកទេ។

នៅទីនេះ http_errors ជា false ដើម្បីទុកចម្លើយកំហុស HTTP ឱ្យពិនិត្យបាន។ ការភ្ជាប់បរាជ័យនៅតែបោះករណីលើកលែងផ្ទេរ។ ដូច្នេះផ្លូវរូង HTTPS ដែលត្រូវបដិសេធពេលបង្កើតអាចបរាជ័យមុនទទួលវត្ថុចម្លើយធម្មតាពីគេហទំព័រ។

ពិនិត្យ handler បើដែនកំណត់ភ្ជាប់មានឥរិយាបថខុសគ្នា

Guzzle អាចប្រើ HTTP handler ផ្សេងគ្នា។ ឯកសារបញ្ជាក់ថា cURL handler ដែលមានស្រាប់គាំទ្រ connect_timeout។ handler ផ្ទាល់ខ្លួនឬបរិស្ថានគ្មាន PHP cURL មិនចាំបាច់ស្មើគ្នាទេ។ ពិនិត្យ handler របស់កម្មវិធីមុនសន្មត់ថាជម្រើស timeout ដែលចម្លងកំពុងមានប្រសិទ្ធភាព។

ក៏គួរកំណត់ timeout សរុបដែរ។ ធាតុបញ្ជីឥតគិតថ្លៃអាចឈប់ឆ្លើយចន្លោះការត្រួតពិនិត្យ ហើយតម្លៃលំនាំដើមមិនមែនជាពេលកំណត់មានប្រយោជន៍សម្រាប់សំណើដែលត្រូវចប់ឆាប់ទេ។

ការប្រើផែនទីប្រូកស៊ី

ផែនទីឱ្យជ្រើសផ្លូវតាម scheme គោលដៅ ហើយផ្ដល់ host រំលងប្រូកស៊ីយ៉ាងច្បាស់៖

'proxy' => [
    'http' => 'http://203.0.113.10:8080',
    'https' => 'http://203.0.113.10:8080',
    'no' => [],
],

ប្រើអារេនេះជំនួសជម្រើសខ្សែអក្សរ។ កូនសោ HTTPS ជ្រើសគោលដៅ HTTPS។ តម្លៃ HTTP របស់វានៅតែពណ៌នាអ្នកស្ដាប់របស់ប្រូកស៊ី។ ពិធីការស្ដាប់ផ្សេងត្រូវការការកំណត់ចំណុចចុងផ្សេង។

ពេលផ្ដល់ជម្រើស proxy របស់សំណើដោយខ្លួនឯង Guzzle រំពឹងឱ្យអ្នកផ្ដល់តម្លៃ no ដែលចង់បាន ជំនួសឱ្យការចម្លងពី NO_PROXY ដោយស្វ័យប្រវត្តិ។ បញ្ជីទទេមានប្រយោជន៍សម្រាប់តេស្តប្រូកស៊ីដាច់ដោយឡែក។ បើកម្មវិធីមានច្បាប់រំលងដោយចេតនា សូមរក្សាវាឱ្យច្បាស់។

អត្ថបទពាក់ព័ន្ធ