Il-proxy jwassal id-dejta. Il-callback tal-kitba tiegħek jirritorna l-valur ħażin. Imbagħad libcurl jieqaf, u l-kodiċi madwaru jirrapporta “falliment ieħor fit-tniżżil permezz tal-proxy”.

Il-callback irid jirrapporta kemm-il byte riċevut effettivament immaniġġja. Li tirritorna għadd differenti jfisser falliment. Għal sink tal-kitba li jimblokka apposta, biċċa tista' tidher hekk:

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;
    }
);

Dan jassumi li l-applikazzjoni eżistenti għandha l-handle u s-sink tal-kitba. Kitba li tfalli jew qasira tieqaf minflok ma tgħid bil-kwiet li l-biċċa kollha ġiet salvata. Sink li ma jimblokkax jeħtieġ disinn xieraq ta' buffering u waqfien/tkomplija; il-biċċa żgħira ma tipprovdix wieħed.

Għodd il-bytes, mhux il-karattri murija. Id-dejta tista' tkun binarja jew parti minn sekwenza ta' test b'ħafna bytes. Callback wieħed mhux bilfors linja waħda, dokument JSON wieħed jew messaġġ wieħed mis-servizz.

Il-parsing inkrementali jeħtieġ stat tiegħu bejn il-callbacks. Bil-maqlub, li tiġbor kull biċċa sal-kompletament jista' jkun korrett għal risposta żgħira limitata, iżda mhuwiex politika tal-memorja għal fluss kbir jew bla tmiem.

Żomm ir-riżultat tat-trasferiment u l-evidenza tal-falliment tal-callback. Żball lokali tad-diska jew waqfien tal-parser jistgħu jiġru wara li tinħoloq rotta tal-proxy valida. Jekk beħsiebek tieqaf wara prefiss, immarka dak il-waqfien intenzjonat tal-callback separatament. Is-sostituzzjoni tal-indirizz tal-proxy ma tistax issewwi sink li waqaf jaċċetta d-dejta.

Artikli relatati