C#:
Enviando una solicitud http
Cómo hacerlo:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
using (var httpClient = new HttpClient())
{
try
{
// GET request
HttpResponseMessage response = await httpClient.GetAsync("http://api.example.com/data");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
// POST request
var postData = new StringContent("{\"name\":\"Tu Nombre\"}", System.Text.Encoding.UTF8, "application/json");
HttpResponseMessage postResponse = await httpClient.PostAsync("http://api.example.com/submit", postData);
postResponse.EnsureSuccessStatusCode();
string postResponseBody = await postResponse.Content.ReadAsStringAsync();
Console.WriteLine(postResponseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
}
}
}
Output:
{ "data": "Información obtenida con GET" }
{ "result": "Respuesta de la solicitud POST" }
Profundización:
En los años 90, el HTTP se convirtió en el protocolo estándar para la web. Desde entonces, el envío de solicitudes HTTP ha sido fundamental para la interacción en la web, y ha evolucionado con la tecnología.
Alternativas: Hay diferentes métodos HTTP (GET, POST, PUT, DELETE, etc.), y varios clientes HTTP en C# como WebClient y RestSharp, pero HttpClient es el más moderno y recomendado.
Detalles de implementación: Con HttpClient
, puedes personalizar headers, manejar timeouts y manejar errores. Usa async
y await
para operaciones sin bloqueo en aplicaciones de consola, escritorio o móviles.