Convertir curl a C
curl2code convierte comandos curl a código C utilizando libcurl. La conversión se ejecuta en su navegador a través de WebAssembly para una privacidad total. Para Rust, consulte nuestro conversor de curl a Rust. Para Go, vea curl a Go. A continuación se presentan ejemplos prácticos de C con una gestión de memoria adecuada.
Cómo copiar curl desde su navegador
- 1
Abrir DevTools
Presione F12 o Ctrl+Shift+I para abrir las herramientas de desarrollo de su navegador.
- 2
Vaya a la pestaña Network
Haga clic en la pestaña Network y realice la acción que activa la solicitud HTTP.
- 3
Copiar como cURL
Haga clic derecho en la solicitud → Copy → Copy as cURL. Luego péguelo arriba.
Preguntas frecuentes
¿Qué es libcurl?
libcurl es la biblioteca de C que está detrás de la herramienta de línea de comandos curl. Es la biblioteca de cliente HTTP más portátil y ampliamente desplegada que existe, soportando más de 25 protocolos. Es utilizada por miles de aplicaciones y sistemas embebidos. Añádela con el gestor de paquetes de tu sistema o enlázala estáticamente. curl2code genera código C de libcurl usando la interfaz "easy".
libcurl interfaz easy vs multi — ¿cuál usar?
La interfaz easy (curl_easy_*) es para transferencias síncronas individuales — simple y directa. La interfaz multi (curl_multi_*) permite transferencias concurrentes no bloqueantes en un solo hilo. Usa easy para scripts y herramientas simples, y multi para aplicaciones de alto rendimiento. Para un lenguaje de la familia C de nivel más alto, consulta curl a Rust.
¿Cómo manejar la autenticación con libcurl?
Para Bearer: establece un encabezado personalizado con curl_slist_append(headers, "Authorization: Bearer token"). Para autenticación Basic: curl_easy_setopt(curl, CURLOPT_USERPWD, "user:pass"). libcurl codifica automáticamente las credenciales de autenticación Basic. curl2code convierte los flags -u y de encabezado a las llamadas correctas de la API de C.
¿Cómo enviar datos de formulario multipart con libcurl?
Usa la API MIME (libcurl 7.56+): curl_mime_init() para crear una estructura mime, curl_mime_addpart() para cada campo, curl_mime_name() y curl_mime_filedata() para subidas de archivos. Establécelo con CURLOPT_MIMEPOST. Libera con curl_mime_free().
¿Cómo manejar errores con libcurl?
Cada función curl_easy_* devuelve un CURLcode — compruébalo contra CURLE_OK. Usa curl_easy_strerror(code) para mensajes legibles por humanos. Establece CURLOPT_ERRORBUFFER para cadenas de error detalladas. Obtén el estado HTTP con curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &code).
¿Cómo gestionar la memoria con libcurl?
Llama siempre a curl_easy_cleanup() cuando termines con un manejador. Libera las listas de encabezados con curl_slist_free_all(). Libera las estructuras MIME con curl_mime_free(). Para los callbacks de escritura, gestiona tu propia asignación de búfer. Llama a curl_global_cleanup() una vez al salir del programa. No liberar los recursos causa fugas de memoria.
¿Cómo establecer tiempos de espera con libcurl?
Establece CURLOPT_CONNECTTIMEOUT para el tiempo de espera de conexión y CURLOPT_TIMEOUT para el tiempo total de transferencia (ambos en segundos). Para precisión en milisegundos, usa CURLOPT_CONNECTTIMEOUT_MS y CURLOPT_TIMEOUT_MS. Estas son exactamente las mismas opciones que usa la CLI de curl con --connect-timeout y --max-time.
¿Cómo configurar un proxy con libcurl?
Establece CURLOPT_PROXY con la URL del proxy: curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:8080"). Para SOCKS5: establece CURLOPT_PROXYTYPE a CURLPROXY_SOCKS5. Para autenticación de proxy: CURLOPT_PROXYUSERPWD. libcurl también respeta la variable de entorno http_proxy.
¿Cómo enviar una solicitud POST con un cuerpo JSON en C?
Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL a C usando curl2code. El código generado utiliza curl_easy_setopt(curl, CURLOPT_POSTFIELDS, json_string). curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código de libcurl.
¿Cómo añadir autorización con token Bearer en C?
Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código de libcurl con el encabezado de autorización: struct curl_slist *headers = curl_slist_append(NULL, "Authorization: Bearer TOKEN"). curl2code detecta tokens Bearer tanto en los flags -H "Authorization: Bearer ..." como en --oauth2-bearer. Para Basic auth, utiliza -u user:pass.
¿Cómo configurar el encabezado Content-Type en C?
curl2code convierte curl -H "Content-Type: application/json" URL a código de libcurl con el encabezado correcto: curl_slist_append(headers, "Content-Type: application/json"). Para los datos de -d, curl utiliza por defecto application/x-www-form-urlencoded; para subidas de formularios con -F, utiliza multipart/form-data. curl2code mapea cada uno a la API de libcurl correcta.
Enlaces útiles
Guías de curl
Códigos de error de curl
Busca cualquier código de salida de curl — causas, soluciones y consejos de depuración.
Descargar archivos con curl
Guarda archivos con -o, -O, sigue redirecciones, reanuda descargas y más.
SSL, TLS y proxy
Configura certificados, versiones de TLS, proxies HTTP/SOCKS y DNS personalizado.