Para mi sorpresa, no puedo hacer nada tan simple como esto, por lo que puedo decir, en .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 anterior realiza una POST HTTP, con datos, y devuelve la respuesta de un Post
método en una clase estática Http
.
Dado que nos quedamos sin algo tan fácil, ¿cuál es la siguiente mejor solución?
¿Cómo envío un HTTP POST con datos Y obtengo el contenido de la respuesta?
Respuestas:
Necesitará estos incluye:
Si insiste en usar un método / clase estático:
Entonces simplemente:
fuente
string result = System.Text.Encoding.UTF8.GetString(response)
. Esta es la pregunta donde encontré la respuesta.Usando HttpClient: en lo que respecta al desarrollo de aplicaciones de Windows 8, me encontré con esto.
fuente
.Result
conAsync
llamadas, useawait
para asegurarse de que su hilo de UI no se bloqueará. Además, un simplenew[]
funcionará tan bien como la Lista; El diccionario puede limpiar el código, pero reducirá algunas funciones HTTP.Use WebRequest . De Scott Hanselman :
fuente
fuente
Personalmente, creo que el enfoque más simple para hacer una publicación http y obtener la respuesta es usar la clase WebClient. Esta clase resume muy bien los detalles. Incluso hay un ejemplo de código completo en la documentación de MSDN.
http://msdn.microsoft.com/en-us/library/system.net.webclient(VS.80).aspx
En su caso, desea el método UploadData (). (Nuevamente, se incluye una muestra de código en la documentación)
http://msdn.microsoft.com/en-us/library/tdbbwh0a(VS.80).aspx
UploadString () probablemente también funcionará, y lo abstrae un nivel más.
http://msdn.microsoft.com/en-us/library/system.net.webclient.uploadstring(VS.80).aspx
fuente
Sé que este es un hilo viejo, pero espero que ayude a alguien.
fuente
Dado que otras respuestas tienen unos pocos años, actualmente aquí están mis pensamientos que pueden ser útiles:
La manera más simple
Un ejemplo mas practico
A menudo estamos tratando con tipos conocidos y JSON, por lo que puede ampliar aún más esta idea con cualquier cantidad de implementaciones, como:
Un ejemplo de cómo se podría llamar esto:
fuente
Puede usar algo como este pseudocódigo:
fuente