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

Cómo usar cURL a C#

  1. Pega el comando curl con sus cabeceras y su cuerpo
  2. Lee el C# generado: aparece según escribes
  3. Cópialo o descarga Program.cs
  4. 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

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

Todas las herramientas de ArrayKit