המרת 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. לאחר מכן הדבק אותה למעלה.
שאלות נפוצות (FAQ)
מהו 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, השתמשו באפשרות המובנית: {:basic-auth ["user" "pass"]}. clj-http תומך גם ב-OAuth ובאימות digest. curl2code ממיר דגלי -u וכותרות למפות Clojure אידיומטיות.
איך שולחים נתוני multipart form ב-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. ה-futures של Clojure רצים על thread pool של ה-JVM. למקביליות דומה, ראו curl ל-Java.
איך מגדירים פסקי זמן ב-Clojure?
העבירו אפשרויות פסק זמן: (client/get url {:connection-timeout 10000 :socket-timeout 30000}). הערכים הם במילי-שניות. עבור ניסיונות חוזרים, השתמשו באפשרות :retry-handler או עטפו בפונקציית retry מותאמת אישית עם exponential backoff. אלו תואמים ל---connect-timeout ו---max-time של curl.
איך משתמשים ב-proxy ב-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.