המרת curl ל-Go

המר פקודות curl לקוד Go באמצעות חבילת ה-net/http הסטנדרטית. curl2code רץ כולו בדפדפן שלך דרך WebAssembly — המידע שלך נשאר פרטי. אם אתה מעדיף שפה ברמה גבוהה יותר, נסה את ממיר curl ל-Python. לתכנות מערכות, ראה curl ל-Rust. להלן דוגמאות Go מוכנות לשימוש.

איך להעתיק curl מהדפדפן שלך

  1. 1

    פתח את DevTools

    לחץ על F12 או על Ctrl+Shift+I כדי לפתוח את כלי המפתחים של הדפדפן.

  2. 2

    עבור ללשונית Network

    לחץ על לשונית ה-Network ובצע את הפעולה שמפעילה את בקשת ה-HTTP.

  3. 3

    העתק כ-cURL

    לחץ קליק ימני על הבקשה ← CopyCopy as cURL. לאחר מכן הדבק אותה למעלה.

שאלות נפוצות (FAQ)

מה זה Go net/http?

החבילה net/http של Go היא לקוח ושרת HTTP ברמה מקצועית הכלולים בספרייה הסטנדרטית. היא אינה דורשת תלות חיצונית, תומכת ב-HTTP/2 כברירת מחדל, ומספקת מאגר חיבורים, פסקי זמן והגדרות TLS באופן מובנה. זוהי הספרייה היחידה ש-curl2code משתמש בה עבור Go — אין צורך בחבילות צד שלישי.

net/http לעומת לקוחות HTTP של צד שלישי ב-Go — במה להשתמש?

החבילה net/http של Go חזקה מספיק לרוב מקרי השימוש — בניגוד לשפות רבות, הספרייה הסטנדרטית מוכנה לייצור (production-ready). אפשרויות צד שלישי כמו resty מוסיפות נוחות (ניסיונות חוזרים אוטומטיים, שרשור פקודות) אך מוסיפות תלות חיצונית. לגישה דומה של "הכל כלול", עיין ב-ממיר curl ל-Rust (reqwest) או ב-curl ל-Python.

איך מטפלים באימות ב-Go?

הגדר את כותרת ה-Authorization עם req.Header.Set("Authorization", "Bearer "+token). עבור אימות Basic, השתמש ב-req.SetBasicAuth(user, pass) המגדיר את הכותרת אוטומטית. curl2code מזהה -u ו--H 'Authorization: ...' ומייצר את קוד ה-Go המתאים.

איך שולחים נתוני טופס (multipart form data) ב-Go?

השתמש בחבילה mime/multipart: צור כותב עם multipart.NewWriter(body), הוסף שדות עם CreateFormField, וקבצים עם CreateFormFile. הגדר את ה-Content-Type ל-writer.FormDataContentType(). curl2code מטפל בכל המרות דגלי -F.

איך מטפלים בשגיאות HTTP ב-Go?

Go משתמשת בהחזרת שגיאות מפורשת: תמיד בדוק if err != nil לאחר http.Do(req). לאחר מכן בדוק את resp.StatusCode לשגיאות ברמת ה-HTTP. תמיד בצע defer resp.Body.Close() כדי למנוע דליפת משאבים. טיפול שגיאות מפורש זה הוא תבנית ליבה ב-Go — ללא חריגות (exceptions) וללא try/catch.

איך מבצעים בקשות HTTP מקביליות ב-Go?

השתמש ב-goroutines עם sync.WaitGroup או channels. הפעל כל בקשה ב-goroutine עם go func() { ... }(). למקביליות מוגבלת, השתמש ב-semaphore channel. ה-goroutines של Go הן קלות משקל — ניתן לנהל בקלות אלפי בקשות מקביליות. לתבניות מקביליות דומות, ראה curl ל-Rust.

איך מגדירים פסקי זמן בלקוח ה-HTTP של Go?

הגדר את client.Timeout עבור המועד האחרון הכולל של הבקשה. לשליטה עדינה יותר, השתמש ב-context.WithTimeout או context.WithDeadline והעבר את ה-context ל-http.NewRequestWithContext. הדגל --connect-timeout של curl ממופה לפסק הזמן של Transport.DialContext, והדגל --max-time ממופה ל-client.Timeout.

איך מגדירים פרוקסי ב-Go?

הגדר את Transport.Proxy ל-http.ProxyURL(proxyUrl) ב-http.Transport מותאם אישית. Go מכבדת גם משתני סביבה HTTP_PROXY ו-HTTPS_PROXY כברירת מחדל דרך http.ProxyFromEnvironment. curl2code ממיר דגלי -x ו---proxy להגדרת הפרוקסי המתאימה ב-Go.

איך שולחים בקשת POST עם גוף JSON ב-Go?

המירו פקודת curl POST כמו curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL ל-Go באמצעות curl2code. הקוד שנוצר משתמש ב-http.Post(url, "application/json", bytes.NewBuffer(jsonData)). curl2code מזהה באופן אוטומטי דגלי -d/--data עם תוכן JSON ומגדיר את כותרת Content-Type המתאימה בקוד ה-net/http.

איך מוסיפים אימות Bearer token ב-Go?

העבירו את curl -H "Authorization: Bearer YOUR_TOKEN" URL ל-curl2code והוא יפיק קוד net/http עם כותרת האימות: req.Header.Set("Authorization", "Bearer YOUR_TOKEN"). curl2code מזהה Bearer tokens גם מדגלי -H "Authorization: Bearer ..." וגם מדגלי --oauth2-bearer. עבור Basic auth, השתמשו ב--u user:pass.

איך מגדירים כותרת Content-Type ב-Go?

curl2code ממיר את curl -H "Content-Type: application/json" URL לקוד net/http עם הכותרת המתאימה: req.Header.Set("Content-Type", "application/json"). עבור נתוני -d, curl משתמש כברירת מחדל ב-application/x-www-form-urlencoded; עבור העלאות טפסים עם -F, הוא משתמש ב-multipart/form-data. curl2code ממפה כל אחד מהם ל-API הנכון של net/http.

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

מדריכי curl

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