HttpWebRequest cavablarını proxy sorğuları arasında sərbəst buraxın
Köhnə HttpWebRequest cavablarına aydın ömür verin ki, təkrar proxy sorğuları bağlantı resurslarını qeyri-müəyyən müddət saxlamasın.
using (WebResponse response = request.GetResponse())
{
response.GetResponseStream().CopyTo(destination);
}
Hər köhnə HttpWebRequest cavabını istehlakı bitirən və onu sərbəst buraxan əhatədə saxlayın. Burada destination tətbiqin yazıla bilən çıxış axınıdır; using bloku kopyalama uğursuz olsa belə WebResponse-u sərbəst buraxır və həmin çıxışın sahibliyini öz üzərinə götürmür.
Bir proxy sorğusunun uğurla bitməsi və sonrakıların gözləməsi yarımçıq cavabların bağlantı resurslarını tutduğunu göstərə bilər. Sadəcə WebResponse almaq onun gövdəsini bitirmir. Sorğu taym-autu gözləməni məhdudlaşdırır, artıq alınmış hər cavabın ömrünü yox.
Eyni sahibliyi xətalara da tətbiq edin. WebException kodunuzun yoxladığı cavabı daşıya bilər; yoxlamadan sonra onu bağlayın. Nəqliyyat nasazlığının heç cavabı olmaya bilər.
Sərbəst buraxma cavabın resurslarını azad edir, lakin hər halda yenidən istifadə oluna bilən bağlantılar vəd etmir. Protokol, server və gövdənin istehlakı hələ də vacibdir.
Bu, köhnə WebRequest yığınının saxlanmasına aiddir. Daha yeni kodda faktiki müştərinin cavab/axın sahibliyinə əməl edin; HttpClient üçün cavabları öz sərbəst buraxma əhatəsində saxlayın və bu təmizləmə nasazlığını proxy autentifikasiyasından və ya marşrut seçimindən ayrıca müəyyən edin.