curl을 Clojure(으)로 변환

curl2code는 clj-http를 사용하여 curl 명령을 Clojure 코드로 변환합니다. 변환은 완전한 개인 정보 보호를 위해 WebAssembly를 통해 브라우저에서 실행됩니다. Elixir의 경우 curl to Elixir 변환기를 확인하세요. Java의 경우 curl to Java를 참조하세요. 아래는 실용적인 Clojure 예제입니다.

브라우저에서 curl을 복사하는 방법

  1. 1

    DevTools 열기

    F12 또는 Ctrl+Shift+I를 눌러 브라우저 개발자 도구를 엽니다.

  2. 2

    Network 탭으로 이동

    Network 탭을 클릭하고 HTTP 요청을 트리거하는 동작을 수행합니다.

  3. 3

    cURL로 복사

    요청을 마우스 오른쪽 버튼으로 클릭 → CopyCopy as cURL을 선택합니다. 그런 다음 위에 붙여넣으세요.

자주 묻는 질문 (FAQ)

clj-http란 무엇인가요?

clj-http는 Apache HttpComponents를 래핑한 Clojure에서 가장 인기 있는 HTTP 클라이언트 라이브러리입니다. 자동 JSON/EDN 파싱, 쿠키 관리 및 커넥션 풀링을 갖춘 관용적인 데이터 중심 API를 제공합니다. project.clj[clj-http "3.x"]를 추가합니다. curl2code는 모든 Clojure 변환에 clj-http를 사용합니다.

clj-http vs http-kit vs aleph — 어떤 것을 사용해야 하나요?

clj-http는 동기식이며 기능이 풍부하고 가장 널리 사용됩니다. http-kit은 비동기 지원을 갖춘 경량 라이브러리로, HTTP 호출도 수행하는 서버에 적합합니다. aleph는 고성능 비동기 I/O를 위해 Netty를 기반으로 구축되었습니다. 유사한 함수형 언어는 curl to Elixir 변환기 또는 curl to OCaml을 참조하세요.

Clojure에서 인증을 처리하는 방법은 무엇인가요?

Bearer 인증의 경우 헤더를 추가합니다: (client/get url {:headers {"Authorization" "Bearer token"}'}). Basic 인증의 경우 내장 옵션을 사용합니다: {:basic-auth ["user" "pass"]}. clj-http는 OAuth 및 digest 인증도 지원합니다. curl2code는 -u 및 헤더 플래그를 관용적인 Clojure 맵으로 변환합니다.

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 패턴으로 변환합니다.

Clojure에서 HTTP 오류를 처리하는 방법은 무엇인가요?

기본적으로 clj-http는 2xx가 아닌 응답에 대해 ExceptionInfo를 발생시킵니다. 대신 응답 맵을 받으려면 {:throw-exceptions false}로 비활성화하세요. (:status response)를 확인합니다. 예외에서 응답을 추출하려면 try/catch와 함께 ex-data를 사용하세요.

Clojure에서 비동기 HTTP 요청을 만드는 방법은 무엇인가요?

future를 반환하는 clj-http와 함께 {:async? true}를 사용하세요. 또는 http-kit을 사용합니다: (http/get url callback). 병렬 요청의 경우 pmap 또는 core.async 채널을 사용하세요. Clojure future는 JVM 스레드 풀에서 실행됩니다. 유사한 동시성은 curl to 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 프록시 옵션으로 변환합니다.

Clojure에서 JSON 바디를 포함한 POST 요청을 보내는 방법은 무엇인가요?

curl2code를 사용하여 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL과 같은 curl POST 명령어를 Clojure로 변환하세요. 생성된 코드는 (client/post url {:content-type :json :body (json/generate-string data)})를 사용합니다. curl2code는 JSON 콘텐츠가 포함된 -d/--data 플래그를 자동으로 감지하고 clj-http 코드에 적절한 Content-Type 헤더를 설정합니다.

Clojure에서 Bearer 토큰 인증을 추가하는 방법은 무엇인가요?

curl -H "Authorization: Bearer YOUR_TOKEN" URL을 curl2code에 입력하면 :headers {'Authorization' 'Bearer YOUR_TOKEN'}와 같은 인증 헤더가 포함된 clj-http 코드가 생성됩니다. curl2code는 -H "Authorization: Bearer ..."--oauth2-bearer 플래그 모두에서 Bearer 토큰을 감지합니다. Basic auth의 경우 -u user:pass를 사용하세요.

Clojure에서 Content-Type 헤더를 설정하는 방법은 무엇인가요?

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을 다른 언어로 변환