Конвертувати curl у Clojure
curl2code конвертує команди curl у код Clojure за допомогою clj-http. Конвертація виконується у вашому браузері через WebAssembly для повної приватності. Для Elixir перегляньте наш конвертер curl у Elixir. Для Java дивіться curl у Java. Нижче наведено практичні приклади на Clojure.
Як скопіювати curl з вашого браузера
- 1
Відкрийте DevTools
Натисніть F12 або Ctrl+Shift+I, щоб відкрити інструменти розробника у вашому браузері.
- 2
Перейдіть на вкладку Network
Натисніть на вкладку Network і виконайте дію, яка ініціює HTTP-запит.
- 3
Скопіюйте як cURL
Клацніть правою кнопкою миші на запит → Copy → Copy 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
Знайдіть будь-який код завершення curl — причини, виправлення та поради з налагодження.
Завантаження файлів за допомогою curl
Зберігайте файли з -o, -O, слідкуйте за перенаправленнями, відновлюйте завантаження та інше.
SSL, TLS та проксі
Налаштування сертифікатів, версій TLS, HTTP/SOCKS-проксі та власного DNS.