Конвертиране на curl в OCaml

Конвертирайте curl команди в OCaml код, използвайки Cohttp. curl2code работи изцяло във вашия браузър чрез WebAssembly — вашите данни остават поверителни. За Rust опитайте нашия curl към Rust конвертор. За Elixir вижте curl към Elixir. По-долу са дадени готови за употреба OCaml примери.

Как да копирате curl от вашия браузър

  1. 1

    Отворете DevTools

    Натиснете F12 или Ctrl+Shift+I, за да отворите инструментите за разработчици на вашия браузър.

  2. 2

    Отидете в раздела Network

    Кликнете върху раздела Network и извършете действието, което задейства HTTP заявката.

  3. 3

    Копирайте като cURL

    Кликнете с десния бутон върху заявката → CopyCopy as cURL. След това я поставете по-горе.

Често задавани въпроси

Какво е OCaml Cohttp?

Cohttp е стандартната библиотека за HTTP клиент и сървър за OCaml. Тя поддържа както Lwt (леки нишки), така и Async бекенди за паралелен I/O. Инсталирайте с opam install cohttp-lwt-unix. Тя предоставя типово-безопасно, функционално API за HTTP заявки. curl2code използва Cohttp за всички OCaml конверсии.

Cohttp срещу ocurl срещу piaf — кое да използвам?

Cohttp е стандартната OCaml HTTP библиотека с поддръжка на 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 данни в OCaml?

Конструирайте multipart тялото ръчно с boundary низове или използвайте библиотека като multipart_form. Задайте хедъра Content-Type с boundary. Тялото на Cohttp е обикновен низ или поток — форматирайте multipart полезния товар съгласно RFC 2046. curl2code се справя с конвертирането на флага -F.

Как да обработвам грешки при HTTP заявки в OCaml?

Cohttp с Lwt връща promises — използвайте 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 осигурява безопасен и ефективен паралелен I/O без притеснения за нишкова безопасност.

Как да задам таймаути в OCaml?

С Lwt използвайте Lwt.pick [request; Lwt_unix.sleep timeout >>= fun () -> Lwt.fail Timeout], за да се състезава заявката с таймер. Cohttp няма вградени опции за таймаут — обвийте Lwt promise с комбинатор за таймаут. За повторни опити имплементирайте рекурсивна функция с намаляващ брой опити.

Как да използвам прокси в OCaml?

Cohttp няма вградена поддръжка за прокси. Използвайте ocurl (libcurl bindings) за нуждите от прокси: задайте опцията 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 токени както от -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 в други езици