Como simular a solicitação de postagem HTTP do navegador e a captura resultam em C#
Pergunta
Digamos que tenhamos uma página da Web com um formulário de entrada de pesquisa, que envia dados ao servidor via HTTP GET. Portanto, isso significa que o servidor recebe dados de pesquisa por meio de seqüências de consultas. O usuário pode ver o URL e também pode inicializar essa solicitação por si mesmo (via Strings de consulta URL +).
Nós todos sabemos isso. Aqui está a questão.
E se esta página da web enviar dados para o servidor via postagem HTTP? Como o usuário pode inicializar esse pedido sozinho?
Bem, eu sei como capturar a postagem HTTP (é por isso que os sniffers da rede são para), mas como posso simular essa solicitação de postagem HTTP por mim em um código C#?
Solução
Você pode dar uma olhada no Cliente da web classe. Ele permite publicar dados em um URL arbitrário:
using (var client = new WebClient())
{
var dataToPost = Encoding.Default.GetBytes("param1=value1¶m2=value2");
var result = client.UploadData("http://example.com", "POST", dataToPost);
// do something with the result
}
Irá gerar a seguinte solicitação:
POST / HTTP/1.1
Host: example.com
Content-Length: 27
Expect: 100-continue
Connection: Keep-Alive
param1=value1¶m2=value2