Il-handler cURL ta' Guzzle: aqbad l-intestaturi CONNECT tal-proxy
Aqbad blokki separati ta' intestaturi tar-risposta bl-handler cURL ta' Guzzle meta kemm ir-risposta CONNECT tal-proxy kif ukoll ir-risposta tas-sit web huma importanti.
Talba HTTPS permezz ta' proxy HTTP tista' tirċievi risposta waħda li taċċetta CONNECT u wara risposta mis-sit web ġewwa dak it-tunnel. Għall-konfigurazzjoni inizjali tar-rotta, ara l-għażla tal-proxy ta' Guzzle għal kull talba. Intestatura fl-ewwel risposta m'għandhiex għalfejn teżisti fl-oġġett tar-risposta finali.
Biex tirriproduċi b'punt finali HTTP li tagħżel int stess, ħu kandidat mil-lista ta' proxies HTTP u kkonferma li jaċċetta t-tunnel HTTPS. Fil-passaġġ tal-handler cURL ta' Guzzle 7.10, żomm kull callback tal-intestaturi bħala blokk separat:
$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(),
];
},
]);
L-estensjoni cURL trid tesponi CURLOPT_SUPPRESS_CONNECT_HEADERS, għażla li daħħlet libcurl 7.54.0. Meta tiffissaha fuq false, l-intestaturi CONNECT jaslu għall-callback tal-intestaturi ta' cURL. Il-handler ta' Guzzle 7.10 jibni risposta għal kull blokk ta' intestaturi komplut u jsejjaħ on_headers f'dak il-limitu.
Żomm il-blokki fl-ordni. L-isfidi tal-awtentikazzjoni, ir-ridefinizzjonijiet u r-risposti informattivi jistgħu jipproduċu blokki addizzjonali; tiħditx il-valuri kollha fi fojer wieħed u tikklassifikax risposta biss għax l-istat tagħha huwa 200.
Ir-risposta mibgħuta tirrappreżenta r-risposta tat-talba kompluta, filwaqt li blocks iżomm l-osservazzjonijiet miġbura mill-callbacks. Jekk il-konfigurazzjoni tat-tunnel jew tat-TLS tfalli, immaniġġja l-eċċezzjoni tat-trasferiment li tinxteħet fl-applikazzjoni li ssejjaħ; forsi ma tkunx teżisti risposta finali tas-sit web.
Dan l-imġieba huwa marbut mal-handler cURL imsemmi. Handler personalizzat jew handler tal-fluss mhuwiex obbligat li jesponi l-istess callbacks tal-handshake tal-proxy. Ittratta l-intestaturi tal-proxy maqbuda bħala data dijanjostika u evita li żżomm valuri marbuta mal-kont mingħajr bżonn.