Tempo Limite suportado Solicitação da Web Multithreaded
Se você estiver usando para fins simples, o WebClient é suficiente. Ausência de tempo limite você pode herdá-lo e substituir o método GetWebRequest facilmente:
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
request.Timeout = Timeout;
return request;
}
Se você estiver usando o modo multithread, você deve configurar o MaxConnection por código ou app.config:Melhorando o desempenho de HttpWebRequests multithread no .NET
Você pode paralelizar facilmente também:Melhor prática para paralelizar o rastreador da Web no .net 4.0
Talvez a Microsoft tenha criado uma nova classe HttpClient para problemas de implemantation do WebClient (HttpWebRequest)
Mas não tem proxy, suporte a Gzip.
Para WebClient:
Configurando o tempo limite ainda inútil na implementação multithread!
Limite de simultaneidade no HttpWebRequest
Então a questão:
Eu preciso de FastWebClient com proxy, timeout (trabalhando um), suporte gzip. Eu vou usá-lo com vários proxies, então eu definitivamente preciso de vários FastWebClient.
Ou ajudante:
FastWebHelper.DownloadString (string url, proxy WebProxy, int timeout)
Qualquer ideia ?