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 –