2011-10-27 13 views
11

Quiero hacer mi C# aplicación sea capaz de enviar una petición HTTP y recibir la respuesta en tiempo de ejecuciónRealización y recepción de una solicitud HTTP en C#

una explicación de la página web Quiero solicitar a es HERE

no tengo ninguna experiencia con que antes, así que estoy un poco confundido acerca de la JSON, XML cosas sé que voy a necesitar un analizador XML o algo así comprender la solicitud

Respuesta

19

Realización de una La solicitud HTTP es muy simple si no desea personalizarla: una llamada al método WebClient.DownloadString. Por ejemplo:

var client = new WebClient(); 
string html = client.DownloadString("http://www.google.com"); 
Console.WriteLine(html); 

Necesitará construir la URL correcta cada vez según la documentación que enlaza.

Si usa el código de ejemplo anterior para hablar con su API, html (que en realidad son los datos de respuesta en general) contendrá XML o JSON como una cadena. Debería analizar esto en otro tipo de árbol de objetos para que pueda trabajar con la respuesta.

+0

En algún punto, este enfoque se va a picar si lo intentas y lo usas con XML. Obtendrá una marca de orden de bytes como los primeros caracteres y el pasador XML no lo deserializará correctamente. –

+0

@DarrelMiller: ¿Por qué el servidor web devolverá una BOM cuando exista el encabezado 'Content-Type' para especificar la codificación? Incluso si lo hace, un simple combo 'StartsWith' /' SubString' hace que sea muy fácil evitarlo. – Jon

+0

Claro, no es demasiado difícil de arreglar si sabes cuál es el problema, ¡pero la mayoría de las personas que eligen usar webclient.DownloadString por lo general no lo hacen! –

3

Usted querrá mirar hacia arriba y los HttpWebRequestHttpWebResponse objetos. Estos serán los objetos que realmente hacen las solicitudes HTTP.

La solicitud y la respuesta contendrán XML y JSON en los cuerpos por API de ViralHeat con los que se haya vinculado.

6

Además de usar WebClient como se sugiere, también puede echar un vistazo a EasyHttp de Hadi Hariri de JetBrains. Puede encontrarlo en https://github.com/hhariri/EasyHttp Resumen de Léame:

EasyHttp - Un fácil de usar cliente HTTP que soporta:

  • CABEZA, PUT, DELETE, GET, POST
  • Galletas
  • autenticación
  • dinámico y estático Typing
  • XML, JSON y forma WWW-codificación URL codificada/decodificación
  • de carga de archivos tanto v entre otras cosas, PUT y POST (multipart/FormData)
  • Algunas otras características poco aseado ....
1

Esta es http://www.nuget.org/List/Packages/HttpClient httpclient estratégico de Microsoft se mueve hacia adelante. Espero ver implementada esta biblioteca en todas las plataformas de Microsoft en el futuro cercano.

+0

¿Cómo sabes que se implementará en todas las plataformas de Microsoft? ¿Enlazar? –

+1

@MontanaHarkin No dije que lo sabía :-). Yo dije, "espero". Sé que ha sido diseñado para habilitar este soporte. Es por eso que las características que son específicas para el escritorio de Windows, como WinINetProxy están en el WebRequestHandler y no en el HttpClientHandler predeterminado? También me dijeron que uno de los arquitectos se ejecutará en WinRT. –

Cuestiones relacionadas