PHP cURL-proksieterugvoerlyne: CONNECT teenoor bestemmingsresponse
Hou CONNECT-, verifikasie-, aanstuur- en finale response-opskrifte apart wanneer 'n PHP cURL-oordrag 'n proksie gebruik.
Versamel opskriflyne afsonderlik van die response-liggaam. 'n Oordrag via 'n proksie kan CONNECT-, verifikasie-, aanstuur- en bestemmingsresponse-opskrifte in een bewerking lewer:
$headerLines = [];
curl_setopt($handle, CURLOPT_HEADERFUNCTION,
function ($handle, $line) use (&$headerLines) {
$headerLines[] = $line;
return strlen($line);
}
);
Hierdie callback hou die rou lynvolgorde en gee die aantal bye terug wat aanvaar is. Dit ontvang volledige lyne; dit groepeer hulle nog nie in response nie en kies ook nie die finale webwerf-opskrifte nie.
Ontleed die volgorde as blokke
'n HTTP-statuslyn begin 'n response-blok, en 'n leë lyn beëindig die opskrifte daarvan. Bewaar hierdie grense voordat jy die finale bestemmingsresponse kies. Tussentydse verifikasiemagtigings en aansturings kan elk blokke byvoeg.
Trailers kan later deur die callback aankom. Hou genoeg ontleder-toestand om hulle van die aanvanklike opskrifte te onderskei, in plaas daarvan om elke latere veld aan die eerste response te koppel.
Behou of onderdruk die tonnelbewyse
Lees CURLINFO_HTTP_CONNECTCODE afsonderlik vir die HTTPS-tonnel se CONNECT-status. 'n aanvaarde tonnel vestig nie 'n suksesvolle webwerf-response nie.
As CONNECT-opskrifte nie vir die versamelaar nodig is nie, beheer CURLOPT_SUPPRESS_CONNECT_HEADERS hulle lewering aan die gekonfigureerde opskrif-uitvoer en callback-paaie. Kontroleer ondersteuning in die gekoppelde libcurl en PHP-bou. Onderdrukking vereenvoudig versameling, maar verwyder opskrifvlak-tonnelbewyse wat diagnose kan help.
Moenie die liggaam herwin met 'n vaste offset of deur na 'n HTML-etiket te soek nie. Opskrifgroottes verskil, tussentydse response verskil, en die liggaam kan binêr of leeg wees. 'n Ou weergawe-spesifieke foutverslag regverdig nie 'n gerate offset nie.
Hou liggaamhantering apart, en bewaar die oordragfout saam met die waargeneemde response-fases as versameling of ontleding misluk. Dit onderskei 'n afgebreekte callback, misvormde toepassingsdata en 'n verwerpte proksi-uitruiling.