Para minha surpresa, não posso fazer nada tão simples quanto isso, pelo que posso dizer, no .NET BCL:
byte[] response = Http.Post
(
url: "http://dork.com/service",
contentType: "application/x-www-form-urlencoded",
contentLength: 32,
content: "home=Cosby&favorite+flavor=flies"
);
Este código hipotético acima cria um HTTP POST, com dados e retorna a resposta de um Post
método em uma classe estática Http
.
Como ficamos sem algo tão fácil, qual é a próxima melhor solução?
Como envio um HTTP POST com dados E obtenho o conteúdo da resposta?
Respostas:
Você precisará destes itens:
Se você insistir em usar um método / classe estático:
Então simplesmente:
fonte
string result = System.Text.Encoding.UTF8.GetString(response)
. Esta é a pergunta onde eu encontrei a resposta.Usando o HttpClient: no que diz respeito ao desenvolvimento de aplicativos do Windows 8, deparei-me com isso.
fonte
.Result
comAsync
chamadas - useawait
para garantir que o encadeamento da interface do usuário não seja bloqueado. Além disso, um simplesnew[]
funcionará tão bem quanto a Lista; O dicionário pode limpar o código, mas reduzirá algumas funcionalidades HTTP.Use WebRequest . De Scott Hanselman :
fonte
fonte
Pessoalmente, acho que a abordagem mais simples para fazer uma postagem http e obter a resposta é usar a classe WebClient. Esta classe abstrai bem os detalhes. Existe até um exemplo de código completo na documentação do MSDN.
http://msdn.microsoft.com/en-us/library/system.net.webclient(VS.80).aspx
No seu caso, você deseja o método UploadData (). (Novamente, um exemplo de código está incluído na documentação)
http://msdn.microsoft.com/en-us/library/tdbbwh0a(VS.80).aspx
O UploadString () provavelmente também funcionará e o abstrai por mais um nível.
http://msdn.microsoft.com/en-us/library/system.net.webclient.uploadstring(VS.80).aspx
fonte
Eu sei que esse é um tópico antigo, mas espero que ajude alguém.
fonte
Dado que outras respostas têm alguns anos, atualmente, aqui estão meus pensamentos que podem ser úteis:
Maneira mais simples
Um exemplo mais prático
Muitas vezes, estamos lidando com tipos conhecidos e JSON, para que você possa estender ainda mais essa ideia com qualquer número de implementações, como:
Um exemplo de como isso pode ser chamado:
fonte
Você pode usar algo como este pseudo-código:
fonte