2012-09-10 296 views
0

如果您爲了簡單目的而使用它,WebClient就足夠了。超時的情況下,你可以繼承它,並覆蓋它的GetWebRequest方法容易:支持超時多線程Web請求

protected override WebRequest GetWebRequest(Uri address) 
{ 
    WebRequest request = base.GetWebRequest(address); 
    request.Timeout = Timeout; 
    return request; 
} 

如果您使用的是它的多線程方式,您可以通過代碼或app.config中設置MAXCONNECTION:Improving performance of multithreaded HttpWebRequests in .NET

可以並行化也容易: Best practics for parallelize web crawler in .net 4.0

也許微軟創建新的HttpClient類的WebClient的implemantation問題(HttpWebRequest的)

但它確實沒有Proxy,Gzip支持。

對於Web客戶端:

設置超時在多線程implemantation仍然無濟於事!

Concurrency Limit on HttpWebRequest

所以問題:

我需要FastWebClient與代理,超時(工作一個),gzip的支持。我將使用它與多個代理,所以我定義需要多個FastWebClient。

或輔助:

FastWebHelper.DownloadString(字符串URL,WebProxy代理,INT超時)

任何想法?

回答