Skip to main content
Volver a herramientas

cURL to C#

Convierte un comando curl a C# HttpClient

Acerca de cURL to C#

Crea código C# asíncrono que envía un HttpRequestMessage mediante el HttpClient de System.Net.Http e imprime el cuerpo con Console.WriteLine. El encabezado Content-Type pasa a StringContent, los campos -F se convierten en FormUrlEncodedContent y los verbos no estándar usan new HttpMethod. El resultado son instrucciones de nivel superior para una app de consola .NET, generadas en tu navegador sin pasar por ningún servidor.

Categoría: API.

Preguntas frecuentes

¿El código C# generado es síncrono o asíncrono?

▾

Asíncrono. Envía un HttpRequestMessage con await client.SendAsync(request) y lee el cuerpo con await response.Content.ReadAsStringAsync(). Está escrito como instrucciones de nivel superior para una app de consola .NET 6+, cuyos usings implícitos predeterminados aportan Console y Dictionary; dentro de una clase, colócalo en un método async Task.

¿Por qué Content-Type no se agrega con request.Headers.Add?

▾

En .NET, Content-Type pertenece al contenido de la petición, así que cuando hay cuerpo su valor pasa a ser el tipo de medio de new StringContent(body, Encoding.UTF8, ...), o text/plain si el comando no define ninguno. Deja ese argumento como un tipo simple, por ejemplo application/json, porque StringContent rechaza ahí parámetros como charset.

¿En qué se convierten -F y -u en el código C#?

▾

Los campos -F se convierten en un FormUrlEncodedContent construido a partir de un Dictionary<string, string>, así que se envían codificados como URL y no como MultipartFormDataContent. -u usuario:clave se convierte en request.Headers.Add con un valor Authorization: Basic cuyo Base64 ya viene calculado.

¿Se traducen -k y -L, y conviene reutilizar HttpClient?

▾

Ninguna se traduce: HttpClient sigue las redirecciones por defecto, y omitir la verificación de certificados requeriría un HttpClientHandler con ServerCertificateCustomValidationCallback. El código crea un HttpClient para una sola llamada; en aplicaciones de larga duración, reutiliza una única instancia o usa IHttpClientFactory.

Herramientas relacionadas