Конвертировать curl в OCaml
Конвертируйте команды curl в код OCaml с помощью Cohttp. curl2code работает полностью в вашем браузере через WebAssembly — ваши данные остаются конфиденциальными. Для Rust попробуйте наш конвертер curl в Rust. Для Elixir см. curl в Elixir. Ниже приведены готовые примеры на OCaml.
Как скопировать curl из браузера
- 1
Откройте DevTools
Нажмите F12 или Ctrl+Shift+I, чтобы открыть инструменты разработчика в браузере.
- 2
Перейдите на вкладку Network
Нажмите на вкладку Network и выполните действие, которое инициирует HTTP-запрос.
- 3
Скопируйте как cURL
Нажмите правой кнопкой мыши на запрос → Copy → Copy as cURL. Затем вставьте его выше.
Часто задаваемые вопросы
Что такое OCaml Cohttp?
Cohttp — это стандартная библиотека HTTP-клиента и сервера для OCaml. Она поддерживает бэкенды Lwt (легковесные потоки) и Async для конкурентного ввода-вывода. Установите с помощью opam install cohttp-lwt-unix. Она предоставляет типобезопасный функциональный API для HTTP-запросов. curl2code использует Cohttp для всех преобразований OCaml.
Cohttp против ocurl против piaf — что использовать?
Cohttp — стандартная библиотека HTTP для OCaml с поддержкой Lwt/Async. ocurl является оберткой над libcurl, предоставляя доступ ко всем функциям curl из OCaml. piaf — более новая библиотека с нативной поддержкой HTTP/2. Используйте Cohttp для идиоматичного OCaml, ocurl — когда нужны специфические функции curl. Для похожих функциональных языков см. curl в Elixir или curl в Clojure.
Как обрабатывать аутентификацию в OCaml?
Добавьте заголовок Authorization к запросу: Header.add headers "Authorization" ("Bearer " ^ token). Для Basic-аутентификации закодируйте учетные данные в base64 с помощью пакета base64. Заголовки Cohttp неизменяемы — создавайте их с помощью Header.of_list или цепочки вызовов Header.add.
Как отправить multipart form data в OCaml?
Сконструируйте multipart-тело вручную со строками-разделителями (boundary) или используйте библиотеку вроде multipart_form. Установите заголовок Content-Type с указанием boundary. Тело в Cohttp — это простая строка или поток; отформатируйте multipart-полезную нагрузку согласно RFC 2046. curl2code обрабатывает конвертацию флага -F.
Как обрабатывать ошибки в HTTP-запросах OCaml?
Cohttp с Lwt возвращает промисы — используйте синтаксис Lwt.catch или try%lwt ... with для обработки ошибок. Проверьте код состояния ответа с помощью Response.status response. Система типов OCaml гарантирует обработку случаев сбоя. Используйте сопоставление с образцом (pattern matching) по кодам состояния для исчерпывающей обработки.
Как делать конкурентные HTTP-запросы в OCaml?
С бэкендом Lwt: используйте Lwt.all [request1; request2] для параллельного выполнения или Lwt_list.map_p для итерации по URL. С Async: используйте Deferred.all. Кооперативная многозадачность OCaml через Lwt или Async обеспечивает безопасный и эффективный конкурентный ввод-вывод без проблем с потокобезопасностью.
Как установить тайм-ауты в OCaml?
В Lwt используйте Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout], чтобы запустить гонку запроса против таймера. В Cohttp нет встроенных опций тайм-аута — оберните промис Lwt комбинатором тайм-аута. Для повторных попыток реализуйте рекурсивную функцию с уменьшением количества попыток.
Как использовать прокси в OCaml?
В Cohttp нет встроенной поддержки прокси. Используйте ocurl (привязки libcurl) для работы с прокси: установите опцию CURLOPT_PROXY. В качестве альтернативы установите переменную окружения HTTP_PROXY и настройте соединение для маршрутизации через хост и порт прокси вручную.
Как отправить POST-запрос с телом JSON на OCaml?
Преобразуйте команду curl POST, такую как curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL, в OCaml с помощью curl2code. Сгенерированный код использует Client.post ~body:(Cohttp_lwt.Body.of_string json) uri. curl2code автоматически обнаруживает флаги -d/--data с содержимым JSON и устанавливает соответствующий заголовок Content-Type в коде Cohttp.
Как добавить авторизацию через Bearer token на OCaml?
Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL в curl2code, и инструмент сгенерирует код Cohttp с заголовком авторизации: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'. curl2code распознает Bearer tokens как в флагах -H "Authorization: Bearer ...", так и в --oauth2-bearer. Для Basic auth используйте -u user:pass.
Как установить заголовок Content-Type на OCaml?
curl2code преобразует curl -H "Content-Type: application/json" URL в код Cohttp с правильным заголовком: Header.add headers 'Content-Type' 'application/json'. Для данных -d curl по умолчанию использует application/x-www-form-urlencoded; для загрузки форм -F используется multipart/form-data. curl2code сопоставляет каждый вариант с подходящим API Cohttp.