2010-01-15 9 views
17

Digamos que tenemos una página web con un formulario de entrada de búsqueda, que envía datos al servidor a través de HTTP GET. Así que eso significa que el servidor recibe datos de búsqueda a través de cadenas de consulta. El usuario puede ver la URL y también puede inicializar esta solicitud por sí mismo (a través de URL + cadenas de consulta).Cómo simular la solicitud HTTP HTTP y captura el resultado en C#

Todos lo sabemos. Aquí está la pregunta.

¿Qué pasa si esta página web envía datos al servidor a través de HTTP POST? ¿Cómo puede el usuario inicializar esta solicitud por sí mismo?

Bueno, sé cómo capturar HTTP POST (por eso los rastreadores de red son para), pero ¿cómo puedo simular esta solicitud HTTP POST por mi cuenta en un código C#?

Respuesta

24

Puede echar un vistazo a la clase WebClient. Se le permite enviar datos a una URL arbitraria:

using (var client = new WebClient()) 
{ 
    var dataToPost = Encoding.Default.GetBytes("param1=value1&param2=value2"); 
    var result = client.UploadData("http://example.com", "POST", dataToPost); 
    // do something with the result 
} 

generará la petición siguiente:

POST/HTTP/1.1 
Host: example.com 
Content-Length: 27 
Expect: 100-continue 
Connection: Keep-Alive 

param1=value1&param2=value2 
Cuestiones relacionadas