Конвертиране на 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 бекенди за паралелен 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
Справка за всеки изходен код на curl — причини, решения и съвети за отстраняване на грешки.
Изтегляне на файлове с curl
Запазвайте файлове с -o, -O, следвайте пренасочвания, възобновявайте изтегляния и още.
SSL, TLS и прокси
Конфигурирайте сертификати, версии на TLS, HTTP/SOCKS проксита и персонализиран DNS.