Eşzamansız modda bazı HTTP işlemleri gerçekleştirmek için System.Net.WebClient
kullanıyorum. Eşzamanlı olmayan işlemlerin kullanılmasının nedeni, her şeyden önce, ilerleme durumu aldığım gerçeği gösterir - bu yalnızca the docs tarafından belirtildiği gibi uyumsuzluk işlemleri için kullanılabilir.Eşzamansız WebClient isteğinde HTTP üstbilgileri alın
Yani benim WebClient kurdunuz diyelim:
this.client = new WebClient();
this.client.UploadStringCompleted +=
new UploadStringCompletedEventHandler(textUploadComplete);
ve temsilci:
private void textUploadComplete(Object sender, UploadStringCompletedEventArgs e)
{
if (e.Error != null)
{
// trigger UI failure notification
return;
}
// FIXME not checking for response code == 200 (OK)
// trigger UI success notification
}
Yani, ben hiçbir özel duruma neden olduğunu tahmin ediyorum bkz istekleri oldu Her zaman başarılı (HTTP yanıtı durum kodu! = 2xx olabileceğinden durum böyle olmayabilir). UploadFileAsync'daki belgelerden, 200 olmayan bir cevabın da işlenip işlenmediğini anlayamıyorum.
Gerçekten C# için yaşıyorum ve bu belirli zaman uyumsuz istek yanıtı için başlığa erişmek için bir yol bulamıyorum. Bana her WebClient
'un herhangi bir zamanda sadece bir cevap (veya bir başlık kümesi) tutabileceğini düşünüyor.
Aynı anda birden fazla paralel istek yürütmeyeceğim, yine de belirli bir isteğin yanıt üstbilgileri/durum kodunu almak yerine daha zarif bir yol olup olmadığını bilmek isterim. WebClient
'dan "son kullanılabilir" yanıtı alın.
Teşekkürler.
.NET 4.5'te misiniz? Öyleyse, TaskAsync aşırı yüklerini kullanmayı deneyin ... hala WebClient sınıfından başlıklara erişmeniz gerekir, ancak bu TAP iş akışını kullanarak hiç de sakıncalı bulamazdım ... Bunu yapmak için biraz yanlış olduğunu kabul ediyorum sıradan bir olay işleyicisi. 'bekliyoruz.UploadStringTaskAsync (...); var üstbilgiler = client.ResponseHeaders; – TCC