HTTP proxy baten bidez egindako HTTPS eskaera batek CONNECT onartzen duen erantzun bat jaso dezake, eta geroago webgunetik datorren beste erantzun bat tunel horren barruan. Hasierako ibilbidearen ezarpenetarako, ikusi Guzzleren eskaera bakoitzeko proxy aukera. Lehen erantzuneko goiburu bat ez da nahitaez egon behar azken erantzun-objektuan.

Zuk zeuk aukeratutako HTTP amaierako puntu batekin erreproduzitzeko, hartu hautagai bat HTTP proxyen zerrendatik eta egiaztatu HTTPS tunela onartzen duela. Guzzle 7.10en cURL kudeatzailearen bidean, gorde goiburu-dei bakoitza bloke bereizi gisa:

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

cURL luzapenak CURLOPT_SUPPRESS_CONNECT_HEADERS erakutsi behar du, libcurl 7.54.0-k sartutako aukera. false baliora ezarriz gero, CONNECT goiburuek cURLen goiburu-deira iristen dira. Guzzle 7.10 kudeatzaileak erantzun bat eraikitzen du osatutako goiburu-bloke bakoitzeko eta on_headers deitzen du muga horretan.

Eduki blokeak ordenan. Autentifikazio-erronkek, birbideratzeek eta informazio-erantzunek bloke gehigarriak sor ditzakete; ez lautu balio guztiak array bakarrean eta ez sailkatu erantzun bat soilik bere egoera 200 delako.

Itzulitako erantzunak osatutako eskaeraren erantzuna adierazten du, blocks-ek dei-muinek bildutako behaketak gordetzen dituen bitartean. Tuneleko edo TLSko ezarpenak huts egiten badu, kudeatu deia egiten duen aplikazioan jaurtitako transferentzia-salbuespena; baliteke webgunearen azken erantzunik ez egotea.

Portaera hau adierazitako cURL kudeatzaileari lotuta dago. Kudeatzaile pertsonalizatu edo fluxu-kudeatzaile bati ez zaio eskatu behar proxyaren eskuko estualdiaren dei-muin berberak erakustera. Tratatu harrapatutako proxy goiburuak datu diagnostiko gisa eta saihestu kontuari lotutako balioak beharrik gabe gordetzea.

Erlazionatutako artikuluak