Cómo hacer una petición web HTTP POST
Canónico
¿Cómo puedo hacer una petición HTTP y enviar algunos datos utilizando el métodoPOST
?
Puedo hacer una petición GET
pero no tengo ni idea de cómo hacer un POST
.
1020
3
Hay varias formas de realizar peticiones HTTP
GET
yPOST
:Método A: HttpClient (Preferido)
Se trata de una envoltura alrededor de
HttpWebRequest
. Comparar conWebClient
.Disponible en:
.NET Framework 4.5+
,.NET Standard 1.1+
,.NET Core 1.0+
.Actualmente el enfoque preferido. Asíncrono. Versión portátil para otras plataformas disponible a través de NuGet.
Setup
Es recomendable instanciar un
HttpClient
para toda la vida de tu aplicación y compartirlo.Ver
HttpClientFactory
para una solución de Inyección de Dependencia.POST
GET
Método B: Bibliotecas de terceros
RestSharp
Biblioteca probada para interactuar con las APIs REST. Portátil. Disponible a través de NuGet.
Flurl.Http
Una biblioteca más reciente que cuenta con una API fluida y ayudantes de prueba. HttpClient bajo el capó. Portátil. Disponible a través de NuGet.
POST
GET
Método C: HttpWebRequest (No se recomienda para trabajos nuevos)
Disponible en:
.NET Framework 1.1+
,.NET Standard 2.0+
,.NET Core 1.0+
POST
`GET'
Método D: WebClient (No se recomienda para trabajos nuevos)
Esta es una envoltura alrededor de
HttpWebRequest
. Comparar conHttpClient
.Disponible en:
.NET Framework 1.1+
,NET Standard 2.0+
,.NET Core 2.0+
POST
GET
Petición GET simple
Petición POST simple
MSDN tiene un ejemplo.