Çok basit bir ihtiyacım var - C# kodumun HTTP üzerinden uzak bir sunucuya bağlanması ve bir dizge indirmesi gerekiyor. Önemsiz bir GET isteği, başka bir şey değil. .NET 4.5'ten HTTP üzerinden bir dize nasıl karşıdan yüklenir?
Ben de operasyon hakkında bir zaman aşımı (diyelim ki, 3 saniye) empoze etmek istiyorum başvurum duyarlı kalmasını sağlamak.ilk düşüncem System.Net.WebClient
kullanmak, ama bu hiçbir zaman aşımları desteklememektedir.
O zaman iyi eski System.Net.HttpWebRequest
'u denemek istedim, ancak alas - .NET 4.5'den beri been marked as obsolete!
Peki ne kullanabiliriz? Ben System.Net.Http
ad teslim, ancak yalnızca asenkron kullanımı, kuvvetler Task
s kullanmasına izin verir ve genellikle sadece (o kullandığından aynı eski System.Net.HttpWebRequest
zaten altına)
Eşzamansız şeyler istemiyorum, diğer iş parçacıklarını da dahil etmek istemiyorum, Görevler çerçevesini dahil etmek istemiyorum, çok fazla sarmalayıcı istemiyorum.
.NET 4.5 Bu oyunda ne doğru yolu nedir?
var değil. 'HttpWebRequest yapıcısını kullanmayın. Yeni HttpWebRequest objects.' – GSerg
'u başlatmak için WebRequest.Create yöntemini kullanın. Zaman aşımı ayarlamak için WebClient async yöntemlerini kullanmaya devam edebilirsiniz: http://stackoverflow.com/a/601899/54937 –
Aramaları her zaman "WebClient" olarak değiştirebilirsiniz. Bir arka plan iş parçacığına ve bir zaman aşımı olan bir tür (AutoResetEvent gibi) bir semafor kullanın. – Will