Chuyển đổi curl sang Clojure

curl2code chuyển đổi các lệnh curl thành mã Clojure bằng clj-http. Quá trình chuyển đổi chạy trong trình duyệt của bạn thông qua WebAssembly để đảm bảo quyền riêng tư hoàn toàn. Đối với Elixir, hãy kiểm tra trình chuyển đổi curl sang Elixir của chúng tôi. Đối với Java, hãy xem curl sang Java. Dưới đây là các ví dụ Clojure thực tế.

Cách sao chép curl từ trình duyệt của bạn

  1. 1

    Mở DevTools

    Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.

  2. 2

    Đi tới tab Network

    Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.

  3. 3

    Sao chép dưới dạng cURL

    Nhấp chuột phải vào yêu cầu → Sao chépCopy as cURL. Sau đó dán nó vào bên trên.

Câu hỏi thường gặp

clj-http là gì?

clj-http là thư viện client HTTP phổ biến nhất cho Clojure, bọc Apache HttpComponents. Nó cung cấp một API hướng dữ liệu đặc trưng (idiomatic) với tính năng tự động phân tích JSON/EDN, quản lý cookie và connection pooling. Thêm vào project.clj: [clj-http "3.x"]. curl2code sử dụng clj-http cho tất cả các chuyển đổi Clojure.

clj-http so với http-kit so với aleph — nên sử dụng cái nào?

clj-http là đồng bộ, giàu tính năng và được sử dụng rộng rãi nhất. http-kit nhẹ với hỗ trợ bất đồng bộ, tuyệt vời cho các máy chủ cũng thực hiện các cuộc gọi HTTP. aleph được xây dựng trên Netty cho I/O bất đồng bộ hiệu suất cao. Đối với các ngôn ngữ chức năng tương tự, hãy xem trình chuyển đổi curl sang Elixir hoặc curl sang OCaml của chúng tôi.

Làm thế nào để xử lý xác thực trong Clojure?

Đối với xác thực Bearer, hãy thêm các header: (client/get url {:headers {"Authorization" "Bearer token"}'}). Đối với xác thực Basic, hãy sử dụng tùy chọn tích hợp sẵn: {:basic-auth ["user" "pass"]}. clj-http cũng hỗ trợ OAuth và xác thực digest. curl2code chuyển đổi các cờ -u và header sang các map Clojure đặc trưng.

Làm thế nào để gửi dữ liệu form multipart trong Clojure?

Sử dụng tùy chọn :multipart: (client/post url {:multipart [{:name "file" :content (clojure.java.io/file "doc.pdf")} {:name "desc" :content "My file"}]}). clj-http tự động xử lý việc tạo boundary và Content-Type. curl2code chuyển đổi các cờ -F sang mẫu Clojure này.

Làm thế nào để xử lý lỗi HTTP trong Clojure?

Theo mặc định, clj-http ném ra ExceptionInfo đối với các phản hồi không phải 2xx. Vô hiệu hóa bằng {:throw-exceptions false} để nhận lại map phản hồi. Kiểm tra (:status response). Sử dụng try/catch với ex-data để trích xuất phản hồi từ các ngoại lệ.

Làm thế nào để thực hiện các yêu cầu HTTP bất đồng bộ trong Clojure?

Sử dụng clj-http với {:async? true} để trả về một future. Hoặc sử dụng http-kit: (http/get url callback). Đối với các yêu cầu song song, hãy sử dụng pmap hoặc các channel core.async. Các future của Clojure chạy trên thread pool của JVM. Đối với tính đồng thời tương tự, hãy xem curl sang Java.

Làm thế nào để thiết lập timeout trong Clojure?

Truyền các tùy chọn timeout: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). Các giá trị tính bằng mili giây. Để thử lại, hãy sử dụng tùy chọn :retry-handler hoặc bọc trong một hàm thử lại tùy chỉnh với exponential backoff. Các thiết lập này tương ứng với --connect-timeout--max-time của curl.

Làm thế nào để sử dụng proxy trong Clojure?

Thiết lập proxy trong map tùy chọn: (client/get url {:proxy-host "proxy" :proxy-port 8080}). Đối với các proxy có xác thực: thêm :proxy-user:proxy-pass. clj-http cũng hỗ trợ proxy SOCKS. curl2code chuyển đổi các cờ -x--proxy sang các tùy chọn proxy Clojure chính xác.

Làm thế nào để gửi một yêu cầu POST với thân JSON trong Clojure?

Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL sang Clojure bằng cách sử dụng curl2code. Mã được tạo sử dụng (client/post url {:content-type :json :body (json/generate-string data)}). curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã clj-http.

Làm thế nào để thêm xác thực Bearer token trong Clojure?

Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã clj-http với header xác thực: :headers {'Authorization' 'Bearer YOUR_TOKEN'}. curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..."--oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.

Làm thế nào để thiết lập header Content-Type trong Clojure?

curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã clj-http với header chính xác: :content-type :json. Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới clj-http API chính xác.

Liên kết hữu ích

Hướng dẫn curl

Chuyển đổi curl sang các ngôn ngữ khác