កំណត់ IP ប្រូកស៊ីសម្រាប់សំណើ Guzzle
ប្រើជម្រើស proxy តាមសំណើក្នុង Guzzle ហើយយល់ពេលភ្ជាប់ដែលពឹងលើ handler និងបញ្ជីរំលងដែលត្រូវកំណត់ច្បាស់។
ជម្រើស 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 ដោយស្វ័យប្រវត្តិ។ បញ្ជីទទេមានប្រយោជន៍សម្រាប់តេស្តប្រូកស៊ីដាច់ដោយឡែក។ បើកម្មវិធីមានច្បាប់រំលងដោយចេតនា សូមរក្សាវាឱ្យច្បាស់។