我有Webclient的問題。WebClient很慢
它很慢。從一個網站下載字符串大約需要3-5秒。 我沒有任何網絡問題。
這是我的Modifed WebClient。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
namespace StatusChecker
{
class WebClientEx: WebClient
{
public CookieContainer CookieContainer { get; private set; }
public WebClientEx()
{
CookieContainer = new CookieContainer();
ServicePointManager.Expect100Continue = false;
Encoding = System.Text.Encoding.UTF8;
WebRequest.DefaultWebProxy = null;
Proxy = null;
}
public void ClearCookies()
{
CookieContainer = new CookieContainer();
}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = CookieContainer;
}
return request;
}
}
}
UPDATE: 在Wireshark中,我看到一個DownladString發送和接收的幾千個數據包。
Web客戶端是不是特別慢,這個問題必須在別處...也許你下載的網站很慢? –
您應該嘗試使用WireShark等流量記錄器來確定延遲是否確實發生在單個請求幀和響應幀之間(由網絡/服務器變慢引起),或者是因爲客戶端代碼行爲異常併發出太多請求或某些此類邏輯錯誤。 –
同時在一個循環中執行多次下載以「預熱」該過程(例如,消除裝入的程序集)。 –