Конвертировать 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 vs http-kit vs aleph — что выбрать?
clj-http синхронен, функционален и наиболее широко используется. http-kit легковесен, поддерживает асинхронность, отлично подходит для серверов, которые также делают HTTP-вызовы. aleph построен на Netty для высокопроизводительного асинхронного I/O. Для похожих функциональных языков см. наш конвертер 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 form data в 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 token на Clojure?
Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL в curl2code, и инструмент сгенерирует код clj-http с заголовком авторизации: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code распознает Bearer tokens как в флагах -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 сопоставляет каждый вариант с подходящим API clj-http.