המרת 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 הפופולרית ביותר עבור 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.

קישורים שימושיים

מדריכי curl

המרת curl לשפות אחרות