HTTP-puhverserveri kaudu tehtud HTTPS-päring võib saada ühe vastuse, mis aktsepteerib CONNECT-i, ja hiljem veebisaidi vastuse selles tunnelis. Marsruudi algseadistamise kohta vaadake Guzzle'i puhverserveri valikut päringu kohta. Esimese vastuse päis ei pea olema lõplikus vastuseobjektis.

Enda valitud HTTP-lõpp-punktiga reprodutseerimiseks võtke kandidaat HTTP-puhverserverite loendist ja veenduge, et see aktsepteerib HTTPS-tunnelit. Guzzle 7.10 cURL-i halduri teel hoidke iga päise tagasikutset eraldi plokina:

$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-i laiendus peab pakkuma CURLOPT_SUPPRESS_CONNECT_HEADERS-i, libcurl 7.54.0-sse lisatud valikut. Selle false-ks seadmine lubab CONNECT-päistel jõuda cURL-i päise tagasikutse juurde. Guzzle 7.10 haldur koostab iga lõpetatud päiseploki jaoks vastuse ja kutsub sellel piiril välja on_headers.

Hoidke plokid järjekorras. Autentimise väljakutsed, ümbersuunamised ja teabevastused võivad tekitada lis aplokke; ärge lamedage kõiki väärtusi ühte massiivi ega liigitage vastust ainult seetõttu, et selle olek on 200.

Tagastatud vastus esindab lõpetatud päringu vastust, samal ajal kui blocks säilitab tagasikutsete kogutud vaatlused. Kui tunneli või TLS-i seadistamine ebaõnnestub, käsitlege visatud edastus erandit kutsuvas rakenduses; veebisaidi lõplikku vastust ei pruugi olla.

See käitumine on seotud nimetatud cURL-i halduriga. Kohandatud või voohaldur ei pea pakkuma samu puhverserveri käepigistuse tagasikutseid. Käsitlege püütud puhverserveri päise diagnostiliste andmetena ja vältige kontoga seotud väärtuste tarbetut säilitamist.

Seotud artiklid