Isicelo se-HTTPS esidlula ku-proxy ye-HTTP singathola impendulo eyodwa eyamukela i-CONNECT kanye nempendulo yakamuva evela kuwebhusayithi ngaphakathi kwalowo mhubhe. Mayelana nokuhlelwa kokuqala komzila, bheka inketho ye-proxy yesicelo ngasinye ku-Guzzle. Iheda elikumpendulo yokuqala akudingeki libe khona entweni yempendulo yokugcina.

Ukuze uphindise usebenzisa i-endpoint ye-HTTP oyikhethela wena, thatha umfakisicelo ovela kuhlu lwe-proxy ye-HTTP bese uqinisekisa ukuthi iyamukela imhubhe ye-HTTPS. Emkhondweni wesiphathi se-cURL sika-Guzzle 7.10, gcina yonke i-header callback iyibhulokhi ehlukile:

$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(),
        ];
    },
]);

Isandiso se-cURL kufanele siveze i-CURLOPT_SUPPRESS_CONNECT_HEADERS, okuyinketho eyethulwa yi-libcurl 7.54.0. Ukuyisetha ku-false kuvumela amaheda e-CONNECT ukuthi afinyelele i-header callback ye-cURL. Isiphathi sika-Guzzle 7.10 sakha impendulo yebhulokhi ngalinye lamaheda eliqediwe futhi sibiza i-on_headers kulowo mngcele.

Gcina amabhulokhi ngokulandelana. Izinselelo zokuqinisekisa, ukudluliswa kabusha kanye nezimpendulo zolwazi kungakhiqiza amabhulokhi engeziwe; ungacwilisi wonke amanani ku-array eyodwa futhi ungahlukanisi impendulo ngoba nje isimo sayo singu-200.

Impendulo ebuyisiwe imelela impendulo yesicelo esiqediwe, kuyilapho ama-blocks egcina okubonwe okwaqoqwa ama-callback. Uma umhubhe noma ukuhlelwa kwe-TLS kuhluleka, phatha i-transfer exception ephonsiwe kuhlelo lokusebenza olubizayo; impendulo yokugcina yewebhusayithi kungenzeka ingabi khona.

Lokhu kuziphatha kuhambisana nesiphathi se-cURL esishiwo. Isiphathi esenziwe ngokwezifiso noma i-stream asiphoqelekile ukuveza ama-proxy-handshake callback afanayo. Thatha amaheda e-proxy athwetshulwe njengedatha yokuxilonga futhi ugweme ukugcina amanani axhumene ne-akhawunti ngokungadingekile.

Izihloko ezihlobene