Olùṣàkóso cURL ti Guzzle: Gbigba Àwọn Àkọlé CONNECT Proxy
Gba àwọn ìdìpọ̀ àkọlé ìdáhùn ọ̀tọ̀ọ̀tọ̀ pẹ̀lú olùṣàkóso cURL ti Guzzle nígbà tí ìdáhùn CONNECT proxy àti ìdáhùn wẹ́búsáììtì bá ṣe pàtàkì.
Ìbéèrè HTTPS kan nípasẹ̀ proxy HTTP lè gba ìdáhùn kan tí ó gba CONNECT àti ìdáhùn tó wáyé lẹ́yìn náà láti wẹ́búsáììtì nínú ọ̀nà túnẹ́lì yẹn. Fún ìṣètò ọ̀nà àkọ́kọ́, wo àṣàyàn proxy fún ìbéèrè kọ̀ọ̀kan ti Guzzle. Àkọlé kan nínú ìdáhùn àkọ́kọ́ kò gbọdọ̀ wà ní ara ohun ìdáhùn ìkẹyìn.
Fún àtúnyẹ̀wò pẹ̀lú endpoint HTTP tí ìwọ fúnra rẹ yàn, mú olùdíje kan láti àkójọ proxy HTTP kí o sì fi dáni pé ó gba túnẹ́lì HTTPS. Fún ọ̀nà olùṣàkóso cURL ti Guzzle 7.10, pa header callback kọ̀ọ̀kan mọ́ gẹ́gẹ́ bí ìdìpọ̀ ọ̀tọ̀ọ̀tọ̀:
$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(),
];
},
]);Àfikún cURL gbọdọ̀ fi CURLOPT_SUPPRESS_CONNECT_HEADERS hàn, àṣàyàn tí libcurl 7.54.0 gbé wá. Fífi í sí false máa ń jẹ́ kí àwọn àkọlé CONNECT dé header callback cURL. Olùṣàkóso Guzzle 7.10 kọ́ ìdáhùn fún ìdìpọ̀ àkọlé kọ̀ọ̀kan tí ó ti parí, ó sì pe on_headers ní ààlà yẹn.
Pa àwọn ìdìpọ̀ mọ́ ní tẹ̀léntẹ̀lé. Àwọn ìpèníjà ìjẹ́rìí, àtúnjúwe àti ìdáhùn ìsọfúnni lè mú àwọn ìdìpọ̀ àfikún jáde; má ṣe tẹ́ gbogbo iye pọ̀ sínú array kan, má sì ṣe pín ìdáhùn kan gẹ́gẹ́ bí ẹ̀ka kìkì nítorí ipò rẹ̀ jẹ́ 200.
Ìdáhùn tí a dá padà dúró fún ìdáhùn ìbéèrè tí ó ti parí, nígbà tí blocks ń pa àwọn àkíyèsí tí àwọn callback kó jọ mọ́. Tí túnẹ́lì tàbí ìṣètò TLS bá kùnà, ṣe ìtọ́jú transfer exception tí a sọ jáde nínú ohun èlò tí ń pè é; ìdáhùn wẹ́búsáììtì ìkẹyìn lè máà sí.
Ìwà yìí so mọ́ olùṣàkóso cURL tí a mẹ́nu kàn. A kò ní dandan pé olùṣàkóso àkànṣe tàbí stream yóò fi àwọn proxy-handshake callback kan náà hàn. Ka àwọn àkọlé proxy tí a gbà gẹ́gẹ́ bí dátà àyẹ̀wò, kí o sì yẹra fún pípa àwọn iye tí ó ní í ṣe pẹ̀lú àkọsílẹ̀ mọ́ láìnídìí.