Конвертиране на 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, управление на бисквитки и пул от връзки. Добавете към project.clj: [clj-http "3.x"]. curl2code използва clj-http за всички Clojure конверсии.

clj-http срещу http-kit срещу aleph — кое да използвам?

clj-http е синхронна, богата на функции и най-широко използвана. http-kit е лека с асинхронна поддръжка, чудесна за сървъри, които също правят HTTP повиквания. aleph е изградена върху Netty за високопроизводителен асинхронен I/O. За подобни функционални езици вижте нашия конвертор от curl към Elixir или curl към OCaml.

Как да се справя с автентикацията в Clojure?

За Bearer автентикация добавете хедъри: (client/get url {:headers {"Authorization" "Bearer token"}'}). За Basic auth използвайте вградената опция: {: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 автоматично управлява генерирането на boundary и 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 или обвийте в персонализирана функция за повторение с експоненциално отстъпване. Тези настройки съответстват на --connect-timeout и --max-time на curl.

Как да използвам прокси в 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 токени както от -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 в други езици