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.

Artikli relatati