แปลง 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 จากนั้นนำมาวางด้านบน

คำถามที่พบบ่อย (FAQ)

clj-http คืออะไร?

clj-http เป็นไลบรารี HTTP client ที่ได้รับความนิยมมากที่สุดสำหรับ Clojure โดยครอบ Apache HttpComponents ไว้ มี API ที่เป็นแบบ data-driven ตามสไตล์ Clojure พร้อมการ parse JSON/EDN อัตโนมัติ, การจัดการคุกกี้ และ connection pooling เพิ่มลงใน project.clj: [clj-http "3.x"] โดย curl2code ใช้ clj-http สำหรับการแปลงเป็น Clojure ทั้งหมด

clj-http vs http-kit vs aleph — ควรใช้อันไหน?

clj-http ทำงานแบบ synchronous มีฟีเจอร์ครบถ้วนและถูกใช้มากที่สุด http-kit มีน้ำหนักเบาพร้อมรองรับ async เหมาะสำหรับเซิร์ฟเวอร์ที่ต้องเรียก HTTP ด้วย aleph สร้างบน Netty สำหรับ async I/O ประสิทธิภาพสูง สำหรับภาษา functional ที่คล้ายกัน ดูได้ที่ ตัวแปลง curl เป็น Elixir หรือ curl เป็น OCaml

จะจัดการการยืนยันตัวตนใน Clojure ได้อย่างไร?

สำหรับ Bearer auth ให้เพิ่ม headers: (client/get url {:headers {"Authorization" "Bearer token"}'}) สำหรับ Basic auth ให้ใช้ตัวเลือกในตัว: {:basic-auth ["user" "pass"]} นอกจากนี้ clj-http ยังรองรับ OAuth และ digest auth โดย curl2code จะแปลงแฟล็ก -u และ header เป็น maps ในสไตล์ 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 เมื่อได้รับ response ที่ไม่ใช่ 2xx ปิดการทำงานนี้ได้ด้วย {:throw-exceptions false} เพื่อรับ response map แทน แล้วตรวจสอบ (:status response) หรือใช้ try/catch ร่วมกับ ex-data เพื่อดึงข้อมูล response จาก exception

จะทำ async HTTP request ใน Clojure ได้อย่างไร?

ใช้ clj-http พร้อมตัวเลือก {:async? true} ซึ่งจะคืนค่าเป็น future หรือใช้ http-kit: (http/get url callback) สำหรับ request แบบขนาน ให้ใช้ pmap หรือ core.async channels โดย Clojure futures จะทำงานบน JVM thread pool สำหรับ concurrency ที่คล้ายกัน ดูได้ที่ curl เป็น Java

จะตั้งค่า timeout ใน Clojure ได้อย่างไร?

ส่งตัวเลือก timeout: (client/get url {:connection-timeout 10000 :socket-timeout 30000}) ค่าที่ใช้เป็นมิลลิวินาที สำหรับการลองใหม่ ให้ใช้ตัวเลือก :retry-handler หรือครอบในฟังก์ชัน retry ที่เขียนเองพร้อม exponential backoff ซึ่งจะตรงกับ --connect-timeout และ --max-time ของ curl

จะใช้ proxy ใน Clojure ได้อย่างไร?

ตั้งค่า proxy ใน options map: (client/get url {:proxy-host "proxy" :proxy-port 8080}) สำหรับ proxy ที่ต้องยืนยันตัวตน: เพิ่ม :proxy-user และ :proxy-pass นอกจากนี้ clj-http ยังรองรับ SOCKS proxy ด้วย โดย curl2code จะแปลงแฟล็ก -x และ --proxy เป็นตัวเลือก proxy ของ Clojure ที่ถูกต้อง

วิธีส่งคำขอ POST พร้อม JSON body ใน 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 จะจับคู่แต่ละรายการเข้ากับ clj-http API ที่ถูกต้อง

ลิงก์ที่มีประโยชน์

คู่มือ curl

แปลง curl เป็นภาษาอื่น