Convertir curl a OCaml
Convierta comandos curl a código OCaml utilizando Cohttp. curl2code se ejecuta completamente en su navegador a través de WebAssembly; sus datos permanecen privados. Para Rust, pruebe nuestro conversor de curl a Rust. Para Elixir, vea curl a Elixir. A continuación se muestran ejemplos de OCaml listos para usar.
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 OCaml Cohttp?
Cohttp es la biblioteca estándar de cliente y servidor HTTP para OCaml. Soporta backends tanto Lwt (hilos ligeros) como Async para E/S concurrente. Instálala con opam install cohttp-lwt-unix. Proporciona una API funcional y con tipos seguros para peticiones HTTP. curl2code utiliza Cohttp para todas las conversiones de OCaml.
Cohttp vs ocurl vs piaf — ¿cuál usar?
Cohttp es la biblioteca HTTP estándar de OCaml con soporte para Lwt/Async. ocurl envuelve libcurl, dando acceso a todas las funciones de curl desde OCaml. piaf es más reciente y nativa de HTTP/2. Usa Cohttp para un OCaml idiomático, ocurl cuando necesites características específicas de curl. Para lenguajes funcionales similares, consulta curl a Elixir o curl a Clojure.
¿Cómo manejar la autenticación en OCaml?
Añade una cabecera Authorization a la petición: Header.add headers "Authorization" ("Bearer " ^ token). Para Basic auth, codifica las credenciales en base64 usando el paquete base64. Las cabeceras de Cohttp son inmutables — constrúyelas con Header.of_list o encadena llamadas a Header.add.
¿Cómo enviar datos de formulario multipart en OCaml?
Construye el cuerpo multipart manualmente con cadenas de límite (boundary), o usa una biblioteca como multipart_form. Establece la cabecera Content-Type con el límite. El cuerpo de Cohttp es una simple cadena o flujo — formatea la carga útil multipart según el RFC 2046. curl2code maneja la conversión del flag -F.
¿Cómo manejar errores en peticiones HTTP de OCaml?
Cohttp con Lwt devuelve promesas — usa la sintaxis Lwt.catch o try%lwt ... with para el manejo de errores. Verifica el código de estado de la respuesta con Response.status response. El sistema de tipos de OCaml asegura que manejes los casos de fallo. Usa pattern matching sobre los códigos de estado para un manejo exhaustivo.
¿Cómo hacer peticiones HTTP concurrentes en OCaml?
Con el backend Lwt: usa Lwt.all [request1; request2] para ejecución paralela o Lwt_list.map_p para mapear sobre URLs. Con Async: usa Deferred.all. La concurrencia cooperativa de OCaml a través de Lwt o Async proporciona una E/S concurrente segura y eficiente sin preocupaciones de seguridad de hilos (thread safety).
¿Cómo establecer tiempos de espera (timeouts) en OCaml?
Con Lwt, usa Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout] para hacer competir una petición contra un temporizador. Cohttp no tiene opciones de timeout integradas — envuelve la promesa Lwt con un combinador de timeout. Para reintentos, implementa una función recursiva con intentos decrecientes.
¿Cómo usar un proxy en OCaml?
Cohttp no tiene soporte de proxy integrado. Usa ocurl (bindings de libcurl) para necesidades de proxy: establece la opción CURLOPT_PROXY. Alternativamente, establece la variable de entorno HTTP_PROXY y configura la conexión para enrutar a través del host y puerto del proxy manualmente.
¿Cómo enviar una solicitud POST con un cuerpo JSON en OCaml?
Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL a OCaml usando curl2code. El código generado utiliza Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código de Cohttp.
¿Cómo añadir autorización con token Bearer en OCaml?
Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código de Cohttp con el encabezado de autorización: Header.add headers 'Authorization' 'Bearer YOUR_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 OCaml?
curl2code convierte curl -H "Content-Type: application/json" URL a código de Cohttp con el encabezado correcto: Header.add 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 Cohttp 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.