cURL a C#
Pega un comando curl y obtén código C# con HttpClient, con las cabeceras donde .NET las espera.
cURL a C# funciona íntegramente en tu navegador: los comandos que pegas, incluidos sus tokens, se convierten en tu dispositivo y nunca se suben.
Abrir cURL a Java
Acerca de cURL a C#
Copiar un comando curl de la documentación de una API y reescribirlo en C# es una tarea pequeña que falla siempre en el mismo punto: .NET separa las cabeceras entre la petición y su contenido. Content-Type pertenece a HttpContent, no a HttpRequestMessage, y ponerlo en el objeto equivocado lanza una excepción en tiempo de ejecución en vez de fallar al compilar. Este conversor analiza los parámetros de curl —método, cabeceras, cuerpo y el -u que se convierte en autenticación básica— y genera un programa con HttpClient con cada cabecera en su sitio.
Características
- Analiza método, cabeceras, cuerpo y autenticación básica
- Coloca Content-Type en el StringContent, donde .NET lo exige
- Convierte las credenciales -u en un AuthenticationHeaderValue
- Verbos no estándar mediante el constructor de HttpMethod
- Directivas using según lo que necesite la petición
- Escapa los cuerpos JSON como literales válidos de C#
- Avisa de parámetros de curl sin equivalente en el cliente
- Descarga el resultado como un Program.cs listo para ejecutar
Cómo usar cURL a C#
- Pega el comando curl con sus cabeceras y su cuerpo
- Lee el C# generado: aparece según escribes
- Cópialo o descarga Program.cs
- Revisa los avisos sobre parámetros no traducidos
Ejemplo
Entrada
curl -X POST https://api.example.com/users -H "Content-Type: application/json" -d '{"name":"Ada"}'
Salida
request.Content = new StringContent(
"{\"name\":\"Ada\"}",
Encoding.UTF8,
"application/json");
El tipo de contenido va al StringContent, no a request.Headers: ese es el error que provoca una excepción en ejecución.
Errores comunes y solución de problemas
- Poner Content-Type lanza InvalidOperationException. — En .NET es una cabecera de contenido: hay que ponerla en HttpContent, como hace el código generado.
- La petición funciona en curl y devuelve 401 en C#. — Revisa cómo llegan las credenciales: -u se convierte en una cabecera básica en base64 y un token pegado con un salto de línea falla.
- Se crea un HttpClient dentro de un bucle y se agotan los sockets. — Reutiliza un único HttpClient o inyéctalo con IHttpClientFactory: un cliente por petición agota los sockets bajo carga.
Preguntas frecuentes
- ¿Cómo convierto un comando curl a C#?
- Pégalo arriba: el método, la URL, las cabeceras y el cuerpo se analizan y se emiten como un programa con HttpClient.
- ¿Por qué no puedo poner Content-Type en HttpRequestMessage?
- Porque .NET separa cabeceras de petición y de contenido, y Content-Type es de contenido: asignarla a request.Headers lanza una excepción.
- ¿Cómo envío autenticación básica en C#?
- Codifica usuario:contraseña en base64 y ponlo como AuthenticationHeaderValue con el esquema Basic en DefaultRequestHeaders.
- ¿Se envía mi comando curl a algún sitio?
- No. Se analiza y convierte en tu navegador, así que los tokens y claves que contenga se quedan en tu dispositivo.
Herramientas relacionadas
- cURL a Fetch — Convierte un comando curl en una llamada fetch() de JavaScript.
- curl a Python — Convierte un comando curl en un script de Python con requests.
- cURL a Java — Convierte un comando curl en código Java con HttpClient.
- curl a Go — Convierte un comando curl en código de Go con net/http.
- curl a Node.js — Convierte un comando curl en código de Node.js con axios.
- Cliente de API — Envía peticiones HTTP, crea cabeceras y parámetros e inspecciona respuestas; guarda tus últimas 25.
Todas las herramientas de ArrayKit