សំណើ HTTPS តាមរយៈ proxy HTTP អាចទទួលបានការឆ្លើយតបមួយដែលទទួលយក CONNECT ហើយបន្ទាប់មកទទួលបានការឆ្លើយតបពីគេហទំព័រនៅខាងក្នុងផ្លូវរូងនោះ។ សម្រាប់ការរៀបចំផ្លូវដំបូង សូមមើល ជម្រើស proxy ក្នុងមួយសំណើរបស់ Guzzle។ បឋមកថានៅក្នុងការឆ្លើយតបដំបូងមិនចាំបាច់មាននៅក្នុងវត្ថុឆ្លើយតបចុងក្រោយទេ។

ដើម្បីបង្កើតឡើងវិញជាមួយចំណុចបញ្ចប់ HTTP ដែលអ្នកជ្រើសរើសដោយខ្លួនឯង សូមយកបេក្ខជនពី បញ្ជីប្រូកស៊ី HTTP ហើយបញ្ជាក់ថាវាទទួលយកផ្លូវរូង HTTPS។ នៅលើផ្លូវ cURL handler របស់ Guzzle 7.10 សូមរក្សាការហៅត្រឡប់បឋមកថានីមួយៗជាប្លុកដាច់ដោយឡែក៖

$blocks = [];
$client = new \GuzzleHttp\Client([
    'handler' => \GuzzleHttp\HandlerStack::create(
        new \GuzzleHttp\Handler\CurlHandler()
    ),
]);

$response = $client->get('https://www.example.com/', [
    'proxy' => 'http://proxy.example:8080',
    'curl' => [CURLOPT_SUPPRESS_CONNECT_HEADERS => false],
    'on_headers' => function (
        \Psr\Http\Message\ResponseInterface $part
    ) use (&$blocks) {
        $blocks[] = [
            'status' => $part->getStatusCode(),
            'reason' => $part->getReasonPhrase(),
            'headers' => $part->getHeaders(),
        ];
    },
]);

ផ្នែកបន្ថែម cURL ត្រូវតែបង្ហាញ CURLOPT_SUPPRESS_CONNECT_HEADERS ដែលជាជម្រើសដែល libcurl 7.54.0 បានណែនាំ។ ការកំណត់វាទៅ false អនុញ្ញាតឱ្យបឋមកថា CONNECT ទៅដល់ការហៅត្រឡប់បឋមកថារបស់ cURL។ cURL handler របស់ Guzzle 7.10 បង្កើតការឆ្លើយតបសម្រាប់ប្លុកបឋមកថាដែលបានបញ្ចប់នីមួយៗ ហើយហៅ on_headers នៅព្រំដែននោះ។

រក្សាប្លុកតាមលំដាប់។ ការប្រឈមផ្ទៀងផ្ទាត់ ការប្តូរទិស និងការឆ្លើយតបព័ត៌មានអាចបង្កើតប្លុកបន្ថែម។ កុំធ្វើឱ្យតម្លៃទាំងអស់រាបស្មើចូលក្នុងអារេតែមួយ ហើយកុំចាត់ថ្នាក់ការឆ្លើយតបតែដោយសារតែស្ថានភាពរបស់វាគឺ 200។

ការឆ្លើយតបដែលបានត្រឡប់មកវិញតំណាងឱ្យការឆ្លើយតបនៃសំណើដែលបានបញ្ចប់ ខណៈដែល blocks រក្សាការសង្កេតដែលប្រមូលបានដោយការហៅត្រឡប់។ ប្រសិនបើការរៀបចំផ្លូវរូង ឬ TLS បរាជ័យ សូមដោះស្រាយករណីលើកលែងនៃការផ្ទេរដែលបានបោះនៅក្នុងកម្មវិធីហៅ។ ការឆ្លើយតបចុងក្រោយពីគេហទំព័រអាចមិនមាន។

អាកប្បកិរិយានេះភ្ជាប់ទៅនឹង cURL handler ដែលបានបញ្ជាក់។ handler ផ្ទាល់ខ្លួន ឬ stream handler មិនតម្រូវឱ្យបង្ហាញការហៅត្រឡប់នៃការចាប់ដៃ proxy ដូចគ្នាទេ។ សូមចាត់ទុកបឋមកថា proxy ដែលបានចាប់យកជាទិន្នន័យវិភាគ ហើយជៀសវាងការរក្សាតម្លៃដែលពាក់ព័ន្ធនឹងគណនីដោយមិនចាំបាច់។

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