Proksi məlumatı çatdırır. Sizin yazma callback-iniz səhv dəyər qaytarır. Sonra libcurl dayanır və ətrafdakı kod başqa bir “proksi endirmə xətası” bildirir.

Callback faktiki olaraq neçə qəbul edilmiş baytı emal etdiyini bildirməlidir. Fərqli say qaytarmaq uğursuzluğa işarədir. Qəsdən bloklayan yazıla bilən sink üçün fraqment belə görünə bilər:

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

Bu, mövcud tətbiqin handle və yazıla bilən sink-ə sahib olduğunu fərz edir. Uğursuz və ya qısa yazma, bütün hissənin saxlandığını səssizcə iddia etmək əvəzinə dayanır. Bloklamayan sink düzgün buferləmə və fasilə/bərpa dizaynı tələb edir; kiçik fraqment bunu təmin etmir.

Göstərilən simvolları deyil, baytları sayın. Məlumat binar və ya çoxbaytlı mətn ardıcıllığının hissəsi ola bilər. Bir callback mütləq bir sətir, bir JSON sənədi və ya xidmətdən bir mesaj deyil.

İnkremental analiz callback-lər arasında öz vəziyyətini tələb edir. Əksinə, tamamlanana qədər hər hissəni toplamaq kiçik məhdud cavab üçün düzgün ola bilər, lakin böyük və ya sonsuz axın üçün yaddaş siyasəti deyil.

Ötürmə nəticəsini və callback xətası sübutunu saxlayın. Etibarlı proksi marşrutu qurulduqdan sonra yerli disk xətası və ya analizatorun dayanması baş verə bilər. Prefiksden sonra dayanmaq niyyətindəsinizsə, həmin qəsdən callback dayanmasını ayrıca qeyd edin. Proksi ünvanını dəyişməklə məlumat qəbul etməyi dayandırmış sink-i düzəltmək mümkün deyil.

Əlaqəli məqalələr