Koguge päiserealad vastuse kehast eraldi. Puhverserveri kaudu toimuv ülekanne võib ühe toiminguga edastada CONNECT-i, autentimise, ümbersuunamise ja sihtkoha vastuse päised:

$headerLines = [];
curl_setopt($handle, CURLOPT_HEADERFUNCTION,
    function ($handle, $line) use (&$headerLines) {
        $headerLines[] = $line;
        return strlen($line);
    }
);

See tagasikutse säilitab töötlemata ridade järjekorra ja tagastab vastuvõetud baitide arvu. See saab terviklikud read; kuid ei rühmita neid veel vastusteks ega vali lõpliku veebisaidi päiseid.

Tõlgendage järjestust plokkidena

HTTP olekurea algatab vastuseploki ja tühi rida lõpetab selle päised. Säilitage need piirid enne lõpliku sihtkoha vastuse valimist. Vahepealsed autentimiskatsed ja ümbersuunamised võivad igaüks plokke lisada.

Trailerid võivad hiljem tagasikutse kaudu saabuda. Hoidke piisavalt parsija olekut, et eristada neid algsetest päistest, selle asemel et kinnitada iga hilisem väli esimese vastuse külge.

Säilitage või suruge alla tunneli tõend

Lugege CURLINFO_HTTP_CONNECTCODE eraldi HTTPS-tunneli CONNECT-oleku jaoks. Vastuvõetud tunnel ei tõesta veebisaidi edukat vastust.

Kui koguja ei vaja CONNECT-i päiseid, juhib CURLOPT_SUPPRESS_CONNECT_HEADERS nende edastamist seadistatud päiseväljundisse ja tagasikutse teedesse. Kontrollige tuge seotud libcurl'is ja PHP koostes. Allasurumine lihtsustab kogumist, kuid eemaldab päisetasandil tunneli tõendi, mis võib diagnoosimist aidata.

Ärge taastage keha fikseeritud nihke või HTML-sildi otsimise teel. Päiste suurused erinevad, vahepealsed vastused erinevad ja keha võib olla binaarne või tühi. Vana versioonispetsiifiline veateade ei õigusta oletatud nihet.

Hoidke keha töötlemine eraldi ja säilitage ülekande viga koos täheldatud vastuseetappidega, kui kogumine või parsimine ebaõnnestub. See eristab katkenud tagasikutset, rikutud rakenduse andmeid ja tagasilükatud puhverserveri vahetust.

Seotud artiklid