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 ?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage