Handler-ka cURL ee Guzzle: Qabashada Ciwaannada CONNECT ee Proxy
Qabashada qaybo ciwaanno jawaab oo goon ah iyada oo la isticmaalayo handler-ka cURL ee Guzzle marka jawaabta CONNECT ee proxy iyo tan website-ka labaduba ay muhiim yihiin.
Codsi HTTPS ah oo mara proxy HTTP ah wuxuu heli karaa hal jawaab oo aqbalaysa CONNECT iyo jawaab dambe oo ka timaadda website-ka gudaha tunnel-kaas. Habaynta hore ee wadada, eeg ikhtiyaarka proxy ee codsi kasta ee Guzzle. Ciwaan ku jira jawaabta koowaad lagama doonayo inuu ku jiro shayga jawaabta ugu dambeeya.
Si aad u tijaabiso adigoo isticmaalaya HTTP endpoint aad adigu dooratay, ka qaado musharax liiska proxy HTTP oo xaqiiji inuu aqbalo tunnel-ka HTTPS. Wadooyinka handler-ka cURL ee Guzzle 7.10, ilaali header callback kasta sidii qayb goon ah:
$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(),
];
},
]);Extension-ka cURL waa inuu soo bandhigo CURLOPT_SUPPRESS_CONNECT_HEADERS, oo ah ikhtiyaar uu soo bandhigay libcurl 7.54.0. In loo dhigo false waxay u oggolaataa ciwaannada CONNECT inay gaaraan header callback-ka cURL. Handler-ka Guzzle 7.10 wuxuu dhisaa jawaab qayb kasta oo ciwaan oo dhammaystiran wuxuuna wacaa on_headers markaas.
Qaybaha ku hay nidaamkooda. Caqabado xaqiijin, dib-u-celin iyo jawaabo macluumaad ah waxay soo saari karaan qaybo dheeraad ah; ha isku darin dhammaan qiimayaasha hal array ama ha ku kala saarin jawaab kaliya sababtoo ah xaaladdeeda waa 200.
Jawaabta la celiyay waxay matalaysaa jawaabta codsiga la dhammeystiray, halka blocks uu ilaaliyo indha-indhaynta lagu ururiyay callbacks-ka. Haddii tunnel-ka ama habaynta TLS ay fashilanto, ka maaree transfer exception-ka la tuuray barnaamijka waca; jawaab website oo ugu dambeysa laga yaabee in aanay jirin.
Dabeecaddan waxay ku xiran tahay handler-ka cURL ee la sheegay. Handler gaar ah ama stream handler lagama doonayo inuu soo bandhigo isla callbacks-ka proxy-handshake. U qaado ciwaannada proxy ee la qabtay sida xog cilmi-baaris oo ka fogow inaad si aan loo baahnayn u haysato qiimayaasha ku xiran akoonka.