Al utilizar el método System.Net.WebClient.DownloadData() Recibo un tiempo de respuesta excesivamente lento.System.Net.WebClient injustificadamente lento
Cuando ir a buscar una dirección URL utilizando la clase de cliente Web en .NET se tarda alrededor de 10 segundos antes de que consiga una respuesta, mientras que la misma página se trae por mi navegador en menos de 1 segundo. Y esto es con datos de 0.5kB o más pequeños.
La solicitud implica parámetros POST/GET y un encabezado de agente de usuario si tal vez eso podría causar problemas.
que (todavía) no han tratado si otras formas de descargar los datos en .NET me da los mismos problemas, pero estoy sospechando que podría obtener resultados similares. (Siempre tuve la sensación de que las solicitudes web en .NET son inusualmente lentas ...)
¿Cuál podría ser la causa de esto?
Editar:
He intentado hacer la cosa correcta usando System.Net.HttpWebRequest
lugar, utilizando el método siguiente, y todas las solicitudes de terminar en menos de 1 segundo.
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();
}
}
Si bien este método (de edad) usando System.Net.WebClient
toma 15-30s para cada solicitud a fin:
public static string DownloadText(string url)
{
var client = new WebClient();
byte[] data = client.DownloadData(url);
return client.Encoding.GetString(data);
}
Relacionado: http://stackoverflow.com/questions/4932541 –