Gall cais HTTPS trwy ddirprwy HTTP dderbyn un ymateb sy'n derbyn CONNECT ac yna ymateb hwyrach o'r wefan y tu mewn i'r twnnel hwnnw. Ar gyfer y gosodiad llwybr cychwynnol, gweler opsiwn dirprwy fesul cais Guzzle. Nid oes rhaid i bennawd ar yr ymateb cyntaf fodoli ar y gwrthrych ymateb terfynol.

I atgynhyrchu gyda phennawd HTTP rydych chi'n ei ddewis eich hun, cymerwch ymgeisydd o'r rhestr dirprwyon HTTP a chadarnhewch ei fod yn derbyn y twnnel HTTPS. Ar gyfer llwybr trefnydd cURL Guzzle 7.10, cadwch bob galwad yn ôl penawdau fel bloc ar wahân:

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

Rhaid i'r estyniad cURL ddatgelu CURLOPT_SUPPRESS_CONNECT_HEADERS, opsiwn a gyflwynwyd gan libcurl 7.54.0. Mae ei osod i false yn caniatáu i benawdau CONNECT gyrraedd galwad yn ôl penawdau cURL. Mae trefnydd Guzzle 7.10 yn adeiladu ymateb ar gyfer pob bloc penawdau cyflawn ac yn galw on_headers ar y ffin honno.

Cadwch y blociau mewn trefn. Gall heriau dilysu, ailgyfeiriadau ac atebion gwybodaeth gynhyrchu blociau ychwanegol; peidiwch â gwastatáu pob gwerth i un arae na dosbarthu ymateb dim ond oherwydd bod ei statws yn 200.

Mae'r ymateb a ddychwelwyd yn cynrychioli ymateb y cais cyflawn, tra bod blocks yn cadw'r arsylwadau a gasglwyd gan y galwadau yn ôl. Os bydd gosodiad y twnnel neu TLS yn methu, triniwch yr eithriad trosglwyddo a deflir yn yr ap sy'n galw; efallai na fydd ymateb terfynol y wefan yn bodoli.

Mae'r ymddygiad hwn yn gysylltiedig â'r trefnydd cURL a nodwyd. Nid yw trefnydd arferol neu ffrydio yn gorfod datgelu'r un galwadau yn ôl llawio'r dirprwy. Triniwch benawdau'r dirprwy a ddaliwyd fel data diagnostig ac osgoi cadw gwerthoedd sy'n gysylltiedig â chyfrif yn ddiangen.

Erthyglau cysylltiedig