當使用System.Net.WebClient.DownloadData()方法時,我得到的響應時間不合理。System.Net.WebClient不合理地慢
在.NET中使用WebClient類獲取URL時,在獲得響應之前需要大約10秒,而瀏覽器在1秒內獲取相同頁面。 這與數據的大小爲0.5kB或更小。
該請求涉及POST/GET參數和用戶代理頭,如果這可能會導致問題。
我還沒有嘗試過,如果其他方式下載數據在.NET中給我同樣的問題,但我懷疑我可能會得到類似的結果。 (我一直有一種感覺,在.NET中的web請求異常緩慢...)
這可能是什麼原因?
編輯:
我試着用System.Net.HttpWebRequest
代替,使用下面的方法做完全相同的事,所有的請求下1秒完成英寸
public static string DownloadText(string url)
var request = (HttpWebRequest)WebRequest.Create(url);
var response = (HttpWebResponse)request.GetResponse();
using (var reader = new StreamReader(response.GetResponseStream()))
{
return reader.ReadToEnd();
}
}
在使用System.Net.WebClient
此(舊)方法需要15-30s爲每個請求完成:
public static string DownloadText(string url)
{
var client = new WebClient();
byte[] data = client.DownloadData(url);
return client.Encoding.GetString(data);
}
相關:http://stackoverflow.com/questions/4932541 – 2015-10-11 04:58:05