2011-10-07 30 views
22

Quería hacer una llamada HTTP a un sitio web. Solo necesito presionar la URL y no quiero cargar o descargar ningún dato. ¿Cuál es la forma más fácil y rápida de hacerlo?C# - Cómo hacer una llamada HTTP

me trataron a continuación código, pero su segunda petición repetitiva lento y después de que simplemente entra en tiempo de espera para 59 secounds y que la hoja de vida:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName); 
webRequest.Method = "POST"; 
webRequest.ContentType = "application/x-www-form-urlencoded"; 
webRequest.ContentLength = fileName.Length; 

Stream os = webRequest.GetRequestStream(); 
os.Write(buffer, 0, buffer.Length); 
os.Close(); 

está utilizando el cliente Web más eficiente ??

WebClient web = new WebClient(); 
web.UploadString(address); 

estoy usando .NET ver 3.5

+0

"¿El uso del WebClient es más eficiente?" ¿Qué te detuvo de intentarlo? –

Respuesta

40

Tiene algunas cosas adicionales allí si realmente está tratando de llamar a un sitio web. Todo lo que necesitará es:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName); 
WebResponse webResp = webRequest.GetResponse(); 

Si no desea esperar una respuesta, es posible mirar a BeginGetResponse para que sea asíncrono.

9

Si no desea cargar todos los datos que debe usar:

webRequest.Method = "GET"; 

Si realmente no se preocupan por conseguir cualquier dato espalda (por ejemplo, si lo que desea es comprobar para ver si la página está disponible) usan:

webRequest.Method = "HEAD"; 

En cualquier caso, en vez webRequest.GetRequestStream() de uso:

WebResponse myWebResponse = webRequest.GetResponse(); 
5

cliente Web es una sintaxis más corto y conciso, pero detrás de las escenas que utiliza un WebRequest, por lo que en términos de rendimiento no va a ser más rápido, será equivalente. Si desea que sea más rápido, deberá mejorar el script del servidor o su infraestructura de red. El problema no está en el lado del cliente.

+1

Un medio adicional para lograr un mayor rendimiento sería utilizar el método HTTP 'HEAD', especialmente si el archivo que se solicita es grande. Sin embargo, mi suposición es que el verdadero problema está en otra parte. –

Cuestiones relacionadas