Proxy-i dorëzon të dhëna. Funksioni juaj i shkrimit kthen vlerën e gabuar. Më pas libcurl ndërpret, dhe kodi përreth raporton një “dështim tjetër shkarkimi përmes proxy-t”.

Funksioni duhet të raportojë sa bajtë të marrë trajtoi në të vërtetë. Kthimi i një numri tjetër sinjalizon dështim. Për një destinacion shkrimi që bllokon qëllimisht, një fragment mund të duket kështu:

curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_WRITEFUNCTION,
    function ($handle, $chunk) use ($sink) {
        $written = fwrite($sink, $chunk);
        return $written === false ? 0 : $written;
    }
);

Kjo supozon se aplikacioni ekzistues zotëron handle-in dhe destinacionin e shkrimit. Një shkrim i dështuar ose i shkurtër ndërpret në vend që të pohojë në heshtje se i gjithë fragmenti u ruajt. Një destinacion jo-bllokues kërkon një dizajn të përshtatshëm buferimi dhe pauze/rimarrjeje; fragmenti i vogël nuk e ofron atë.

Numëroni bajtë, jo karaktere të shfaqura. Të dhënat mund të jenë binare ose pjesë e një sekuence teksti shumëbajtëshe. Një thirrje nuk është domosdoshmërisht një rresht, një dokument JSON ose një mesazh nga shërbimi.

Analiza incrementale kërkon gjendjen e vet midis thirrjeve. Në të kundërt, grumbullimi i çdo fragmenti deri në përfundim mund të jetë i saktë për një përgjigje të vogël të kufizuar, por nuk është politikë memorieje për një rrjedhë të madhe ose pa fund.

Ruani rezultatin e transferimit dhe provat e dështimit të thirrjes. Një gabim lokal disku ose ndërprerje e analizuesit mund të ndodhë pasi të jetë vendosur një rrugë e vlefshme proxy. Nëse synoni të ndaleni pas një prefiksi, shënoni veçmas atë ndalesë të qëllimshme të thirrjes. Zëvendësimi i adresës së proxy-t nuk mund të riparojë një destinacion që ndaloi së pranuari të dhëna.

Artikuj të ngjashëm