Naghahatid ng datos ang proxy. Nagbabalik ng maling halaga ang iyong callback sa pagsulat. Pagkatapos ay tumitigil ang libcurl, at iniuulat ng code sa paligid ang isa pang “pagkabigo sa pag-download sa proxy”.

Dapat iulat ng callback kung ilang natanggap na byte ang aktwal na hinawakan nito. Ang pagbabalik ng ibang bilang ay senyales ng pagkabigo. Para sa sadyang humaharang na patutunguhan ng pagsulat, ang isang tipak ay maaaring ganito:

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

Ipinapalagay nito na pagmamay-ari ng umiiral na aplikasyon ang handle at ang patutunguhan ng pagsulat. Ang nabigo o maikling pagsulat ay tumitigil sa halip na tahimik na mag-angkin na naisalba ang buong tipak. Ang hindi humaharang na patutunguhan ay nangangailangan ng angkop na disenyo ng buffering at paghinto/pagpapatuloy; hindi ito ibinibigay ng maliit na tipak.

Bilangin ang mga byte, hindi ang mga karakter na ipinapakita. Ang datos ay maaaring binary o bahagi ng multi-byte na pagkakasunod-sunod ng teksto. Ang isang callback ay hindi kinakailangang isang linya, isang dokumentong JSON, o isang mensahe mula sa serbisyo.

Ang incremental na pag-parse ay nangangailangan ng sarili nitong estado sa pagitan ng mga callback. Sa kabaligtaran, ang pag-iipon ng bawat tipak hanggang matapos ay maaaring tama para sa maliit at may hangganang tugon, ngunit hindi ito patakaran sa memorya para sa malaki o walang katapusang stream.

Itago ang resulta ng paglilipat at ang ebidensya ng pagkabigo ng callback. Maaaring mangyari ang lokal na error sa disk o pagtigil ng parser pagkatapos maitatag ang balidong ruta ng proxy. Kung balak mong huminto pagkatapos ng isang prefix, markahan nang hiwalay ang sadyang paghinto ng callback na iyon. Hindi kayang ayusin ng pagpapalit ng address ng proxy ang isang patutunguhan na tumigil sa pagtanggap ng datos.

Kaugnay na mga artikulo