המרת curl ל-Elixir
המר פקודות curl לקוד Elixir באמצעות HTTPoison. curl2code רץ כולו בדפדפן שלך דרך WebAssembly — המידע שלך נשאר פרטי. עבור Ruby, נסה את ממיר curl ל-Ruby. עבור Go, ראה curl ל-Go. להלן דוגמאות Elixir מוכנות לשימוש.
איך להעתיק curl מהדפדפן שלך
- 1
פתח את DevTools
לחץ על F12 או על Ctrl+Shift+I כדי לפתוח את כלי המפתחים של הדפדפן.
- 2
עבור ללשונית Network
לחץ על לשונית ה-Network ובצע את הפעולה שמפעילה את בקשת ה-HTTP.
- 3
העתק כ-cURL
לחץ קליק ימני על הבקשה ← Copy ← Copy as cURL. לאחר מכן הדבק אותה למעלה.
שאלות נפוצות (FAQ)
מהו Elixir HTTPoison?
HTTPoison הוא לקוח ה-HTTP הפופולרי ביותר עבור Elixir, הבנוי על גבי ספריית hackney של Erlang. הוא מספק API נקי ופונקציונלי עבור GET, POST, סטרימינג ובקשות אסינכרוניות. הוסיפו ל-deps ב-mix.exs: {:httpoison, "~> 2.0"}. curl2code משתמש ב-HTTPoison כברירת מחדל להמרות Elixir.
HTTPoison לעומת Req לעומת Tesla לעומת Finch — במה להשתמש?
HTTPoison הוא המבוסס והנפוץ ביותר. Req הוא חדש יותר, כולל הכל (batteries-included) עם ניסיונות חוזרים ואימות. Tesla מציע ארכיטקטורת middleware כמו Faraday. Finch הוא ברמה נמוכה, בעל ביצועים גבוהים לשימוש בייצור. לגישות פונקציונליות דומות, ראו curl ל-Clojure או curl ל-Ruby.
איך מטפלים באימות ב-Elixir?
העבירו כותרות כרשימה של tuples מחרוזות: HTTPoison.get(url, [{"Authorization", "Bearer token"}]). עבור אימות Basic, קודדו את user:pass עם Base.encode64/1 והוסיפו "Basic " בתחילת הערך. בצעו pattern match לתגובה עבור {:ok, response} או {:error, reason}. curl2code ממיר דגלי -H ו--u ל-Elixir אידיומטי.
איך שולחים נתוני multipart form ב-Elixir?
השתמשו ב-{:multipart, parts} כגוף הבקשה: HTTPoison.post(url, {:multipart, [{:file, path, {"form-data", [{"name", "file"}, {"filename", "doc.pdf"}]}, []}]}). לשדות טופס פשוטים, הוסיפו tuples של {"key", "value"}. curl2code מטפל בדגלי -F עבור multipart ב-HTTPoison.
איך מטפלים בשגיאות בבקשות HTTP ב-Elixir?
HTTPoison מחזיר tagged tuples: {:ok, response} או {:error, reason}. בצעו pattern match עם case או with: case HTTPoison.get(url) do {:ok, %{status_code: 200}'} -> ... ; {:error, %{reason: reason}'} -> ... end. זהו Elixir אידיומטי — טיפול מפורש ומקיף בשגיאות ללא חריגות.
איך מבצעים בקשות HTTP מקביליות ב-Elixir?
השתמשו ב-Task.async/1 ו-Task.await/1: tasks = urls |> Enum.map(&Task.async(fn -> HTTPoison.get(&1) end)) ואז results = tasks |> Enum.map(&Task.await/1). ה-BEAM VM של Elixir מטפל באלפי תהליכים מקביליים ביעילות. למקביליות דומה, ראו curl ל-Go.
איך מגדירים פסקי זמן ב-Elixir?
העבירו אפשרויות ל-HTTPoison: HTTPoison.get(url, [], [timeout: 30_000, recv_timeout: 30_000]). timeout הוא פסק הזמן לחיבור, recv_timeout הוא פסק הזמן לתגובה (שניהם במילי-שניות). עבור ניסיונות חוזרים, עטפו בפונקציה רקורסיבית עם מספר ניסיונות יורד או השתמשו ב-retry המובנה של ספריית Req.
איך משתמשים ב-proxy ב-Elixir?
העבירו אפשרות proxy ל-HTTPoison: HTTPoison.get(url, [], [proxy: {"proxy.host", 8080}]). עבור פרוקסי עם אימות, השתמשו ב-proxy_auth: {"user", "pass"}. HTTPoison תומך גם בפרוקסי SOCKS5 דרך ספריית hackney הבסיסית. curl2code ממיר דגלי -x לתצורת פרוקסי ב-Elixir.
איך שולחים בקשת POST עם גוף JSON ב-Elixir?
המירו פקודת curl POST כמו curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL ל-Elixir באמצעות curl2code. הקוד שנוצר משתמש ב-HTTPoison.post(url, Jason.encode!(body), [{'Content-Type', 'application/json'}]). curl2code מזהה באופן אוטומטי דגלי -d/--data עם תוכן JSON ומגדיר את כותרת Content-Type המתאימה בקוד ה-HTTPoison.
איך מוסיפים אימות Bearer token ב-Elixir?
העבירו את curl -H "Authorization: Bearer YOUR_TOKEN" URL ל-curl2code והוא יפיק קוד HTTPoison עם כותרת האימות: [{'Authorization', 'Bearer YOUR_TOKEN'}]. curl2code מזהה Bearer tokens גם מדגלי -H "Authorization: Bearer ..." וגם מדגלי --oauth2-bearer. עבור Basic auth, השתמשו ב--u user:pass.
איך מגדירים כותרת Content-Type ב-Elixir?
curl2code ממיר את curl -H "Content-Type: application/json" URL לקוד HTTPoison עם הכותרת המתאימה: [{'Content-Type', 'application/json'}]. עבור נתוני -d, curl משתמש כברירת מחדל ב-application/x-www-form-urlencoded; עבור העלאות טפסים עם -F, הוא משתמש ב-multipart/form-data. curl2code ממפה כל אחד מהם ל-API הנכון של HTTPoison.