Конвертувати curl у Clojure

curl2code конвертує команди curl у код Clojure за допомогою clj-http. Конвертація виконується у вашому браузері через WebAssembly для повної приватності. Для Elixir перегляньте наш конвертер curl у Elixir. Для Java дивіться curl у Java. Нижче наведено практичні приклади на Clojure.

Як скопіювати curl з вашого браузера

  1. 1

    Відкрийте DevTools

    Натисніть F12 або Ctrl+Shift+I, щоб відкрити інструменти розробника у вашому браузері.

  2. 2

    Перейдіть на вкладку Network

    Натисніть на вкладку Network і виконайте дію, яка ініціює HTTP-запит.

  3. 3

    Скопіюйте як cURL

    Клацніть правою кнопкою миші на запит → CopyCopy as cURL. Потім вставте його вище.

Часті запитання

Що таке clj-http?

clj-http — найпопулярніша бібліотека HTTP-клієнта для Clojure, що є обгорткою над Apache HttpComponents. Вона надає ідіоматичний API, орієнтований на дані, з автоматичним парсингом JSON/EDN, керуванням файлами cookie та пулом з'єднань. Додайте в project.clj: [clj-http "3.x"]. curl2code використовує clj-http для всіх перетворень у Clojure.

clj-http проти http-kit проти aleph — що вибрати?

clj-http — синхронна, багатофункціональна та найбільш вживана. http-kit — легка, з підтримкою асинхронності, чудова для серверів, які також роблять HTTP-виклики. aleph побудована на Netty для високоефективного асинхронного введення/виведення. Для подібних функціональних мов дивіться наш конвертер curl в Elixir або curl в OCaml.

Як обробляти автентифікацію в Clojure?

Для Bearer-автентифікації додайте заголовки: (client/get url {:headers {"Authorization" "Bearer token"}'}). Для Basic-автентифікації використовуйте вбудовану опцію: {:basic-auth ["user" "pass"]}. clj-http також підтримує OAuth та digest-автентифікацію. curl2code перетворює -u та прапорці заголовків в ідіоматичні мапи Clojure.

Як надіслати дані форми multipart в Clojure?

Використовуйте опцію :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). clj-http автоматично обробляє генерацію меж та Content-Type. curl2code перетворює прапорці -F у цей патерн Clojure.

Як обробляти помилки HTTP в Clojure?

За замовчуванням clj-http викидає ExceptionInfo при відповідях, відмінних від 2xx. Вимкніть це за допомогою {:throw-exceptions false}, щоб замість цього отримати мапу відповіді. Перевіряйте (:status response). Використовуйте try/catch з ex-data, щоб витягти відповідь із винятків.

Як робити асинхронні HTTP-запити в Clojure?

Використовуйте clj-http з {:async? true}, що повертає future. Або використовуйте http-kit: (http/get url callback). Для паралельних запитів використовуйте pmap або канали core.async. Clojure futures працюють у пулі потоків JVM. Для подібної конкурентності дивіться curl у Java.

Як встановити таймаути в Clojure?

Передайте опції таймауту: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Значення вказані в мілісекундах. Для повторів використовуйте опцію :retry-handler або огорніть у власну функцію повтору з експоненціальною затримкою. Вони відповідають опціям curl --connect-timeout та --max-time.

Як використовувати проксі в Clojure?

Встановіть проксі в мапі опцій: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Для проксі з автентифікацією додайте :proxy-user та :proxy-pass. clj-http також підтримує SOCKS-проксі. curl2code перетворює прапорці -x та --proxy у відповідні опції проксі Clojure.

Як надіслати POST-запит із тілом JSON у Clojure?

Конвертуйте команду curl POST, таку як curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL, у Clojure за допомогою curl2code. Згенерований код використовує (client/post url {:content-type :json :body (json/generate-string data)}). curl2code автоматично виявляє прапорці -d/--data із вмістом JSON і встановлює відповідний заголовок Content-Type у коді clj-http.

Як додати авторизацію за допомогою Bearer-токена у Clojure?

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL у curl2code, і він згенерує код clj-http із заголовком авторизації: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code виявляє Bearer-токени як у прапорцях -H "Authorization: Bearer ...", так і в --oauth2-bearer. Для Basic auth використовуйте -u user:pass.

Як встановити заголовок Content-Type у Clojure?

curl2code конвертує curl -H "Content-Type: application/json" URL у код clj-http із відповідним заголовком: :content-type :json. Для даних -d curl за замовчуванням використовує application/x-www-form-urlencoded; для завантаження форм -F використовується multipart/form-data. curl2code зіставляє кожен варіант із правильним clj-http API.

Корисні посилання

Посібники з curl

Конвертувати curl в інші мови