Proxy veriyi iletir. Yazma geri çağrınız yanlış değer döndürür. Ardından libcurl iptal eder ve çevredeki kod bir başka “proxy indirme hatası” bildirir.

Geri çağrı, gerçekte kaç alınan baytı işlediğini bildirmelidir. Farklı bir sayı döndürmek hataya işaret eder. Kasıtlı olarak bloklayan bir yazma hedefi için parça şöyle görünebilir:

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, mevcut uygulamanın handle'a ve yazma hedefine sahip olduğunu varsayar. Başarısız veya kısa yazma, tüm parçanın kaydedildiğini sessizce iddia etmek yerine iptal eder. Bloklamayan bir hedef uygun tamponlama ve duraklat/devam ettir tasarımı gerektirir; küçük parça bunu sağlamaz.

Görüntülenen karakterleri değil baytları sayın. Veri ikili olabilir veya çok baytlı bir metin dizisinin parçası olabilir. Bir geri çağrı mutlaka bir satır, bir JSON belgesi veya hizmetten bir mesaj değildir.

Artımlı ayrıştırma, geri çağrılar arasında kendi durumuna ihtiyaç duyar. Tersine, her parçayı tamamlanana kadar biriktirmek küçük ve sınırlı bir yanıt için doğru olabilir, ancak büyük veya sonsuz bir akış için bellek politikası değildir.

Aktarım sonucunu ve geri çağrı hatasının kanıtını saklayın. Geçerli bir proxy yolu kurulduktan sonra yerel disk hatası veya ayrıştırıcı durması meydana gelebilir. Bir önekten sonra durmayı planlıyorsanız, bu kasıtlı geri çağrı duruşunu ayrıca işaretleyin. Proxy adresini değiştirmek, veri kabul etmeyi bırakmış bir hedefi onaramaz.

İlgili makaleler