המרת curl ל-Go
המר פקודות curl לקוד Go באמצעות חבילת ה-net/http הסטנדרטית. curl2code רץ כולו בדפדפן שלך דרך WebAssembly — המידע שלך נשאר פרטי. אם אתה מעדיף שפה ברמה גבוהה יותר, נסה את ממיר curl ל-Python. לתכנות מערכות, ראה curl ל-Rust. להלן דוגמאות Go מוכנות לשימוש.
איך להעתיק curl מהדפדפן שלך
- 1
פתח את DevTools
לחץ על F12 או על Ctrl+Shift+I כדי לפתוח את כלי המפתחים של הדפדפן.
- 2
עבור ללשונית Network
לחץ על לשונית ה-Network ובצע את הפעולה שמפעילה את בקשת ה-HTTP.
- 3
העתק כ-cURL
לחץ קליק ימני על הבקשה ← Copy ← Copy 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.