HTTP պրոքսիի միջով HTTPS հարցումը կարող է ստանալ CONNECT ընդունող մեկ պատասխան, այնուհետև՝ ավելի ուշ կայքի պատասխանը այդ թունելի ներսում։ Սկզբնական երթուղու կարգավորման համար տե՛ս Guzzle-ի՝ յուրաքանչյուր հարցման պրոքսի ընտրանքը։ Առաջին պատասխանի վերնագիրը պարտադիր չէ, որ լինի վերջնական պատասխանի օբյեկտում։

Ձեր ընտրած HTTP վերջնակետով վերարտադրելու համար վերցրե՛ք թեկնածու HTTP պրոքսիների ցանկից և հաստատե՛ք, որ այն ընդունում է HTTPS թունելը։ Guzzle 7.10-ի cURL մշակիչի ուղում պահե՛ք վերնագրերի յուրաքանչյուր հետկանչ որպես առանձին բլոկ՝

$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 ընդլայնումը պետք է տրամադրի CURLOPT_SUPPRESS_CONNECT_HEADERS ընտրանքը, որը ներմուծել է libcurl 7.54.0-ը։ false-ի դնելը թույլ է տալիս CONNECT վերնագրերին հասնել cURL-ի վերնագրերի հետկանչին։ Guzzle 7.10 մշակիչը յուրաքանչյուր ավարտված վերնագրաբլոկի համար կառուցում է պատասխան և այդ սահմանում կանչում on_headers։

Պահե՛ք բլոկները հերթականությամբ։ Նույնականացման մարտահրավերները, վերահասցեավորումները և տեղեկատվական պատասխանները կարող են լրացուցիչ բլոկներ ստեղծել․ մի՛ հարթեցրեք բոլոր արժեքները մեկ զանգվածի մեջ և պատասխանը մի՛ դասակարգեք միայն այն պատճառով, որ դրա կարգավիճակը 200 է։

Վերադարձված պատասխանը ներկայացնում է ավարտված հարցման պատասխանը, մինչդեռ blocks-ը պահպանում է հետկանչերի հավաքած դիտարկումները։ Եթե թունելի կամ TLS-ի կարգավորումը ձախողվի, մշակե՛ք նետված փոխանցման բացառությունը կանչող հավելվածում․ վերջնական կայքի պատասխան կարող է չլինել։

Այս վարքը կապված է նշված cURL մշակիչի հետ։ Հատուկ կամ հոսքային մշակիչը պարտավոր չէ տրամադրել նույն պրոքսի-ձեռքսեղմման հետկանչերը։ Վերաբերվե՛ք որսված պրոքսի վերնագրերին որպես ախտորոշիչ տվյալներ և խուսափե՛ք հաշվին կապված արժեքների ավելորդ պահպանումից։

Առնչվող հոդվածներ