Конвертувати 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 auth закодуйте облікові дані у 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-токена у OCaml?
Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL у curl2code, і він згенерує код Cohttp із заголовком авторизації: Header.add headers 'Authorization' 'Bearer YOUR_TOKEN'. curl2code виявляє Bearer-токени як у прапорцях -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 зіставляє кожен варіант із правильним Cohttp API.
Корисні посилання
Посібники з curl
Коди помилок curl
Знайдіть будь-який код завершення curl — причини, виправлення та поради з налагодження.
Завантаження файлів за допомогою curl
Зберігайте файли з -o, -O, слідкуйте за перенаправленнями, відновлюйте завантаження та інше.
SSL, TLS та проксі
Налаштування сертифікатів, версій TLS, HTTP/SOCKS-проксі та власного DNS.