Timeout unterstützt Multithread-Webanforderung
Wenn Sie es für einfache Zwecke verwenden, reicht WebClient aus. Ohne Timeout können Sie es erben und die GetWebRequest-Methode einfach überschreiben:
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
request.Timeout = Timeout;
return request;
}
Wenn Sie es mit mehreren Threads verwenden, müssen Sie MaxConnection per Code oder app.config festlegen:Verbesserung der Leistung von Multithread-HttpWebRequests in .NET
Sie können es auch leicht parallelisieren:Bewährte Methoden zum Parallelisieren von Webcrawler in .net 4.0
Möglicherweise hat Microsoft eine neue HttpClient-Klasse für Implementierungsprobleme von WebClient erstellt (HttpWebRequest).
Es gibt aber keinen Proxy, Gzip Support.
Für WebClient:
Das Einrichten von Timeout ist bei der Multithread-Implementierung immer noch unbrauchbar!
Parallelitätslimit für HttpWebRequest
Also die Frage:
Ich benötige FastWebClient mit Proxy, Timeout (funktionierend), gzip-Unterstützung. Ich werde es mit mehreren Proxys verwenden, also brauche ich definitiv mehrere FastWebClient.
Oder Helfer:
FastWebHelper.DownloadString (Zeichenfolge-URL, WebProxy-Proxy, int-Zeitüberschreitung)
Irgendeine Idee ?