המרת curl ל-Swift
המר פקודות curl לקוד Swift באמצעות URLSession. curl2code רץ כולו בדפדפן שלך דרך WebAssembly — המידע שלך נשאר פרטי. עבור Kotlin (Android), נסה את ממיר curl ל-Kotlin. עבור Objective-C, ראה curl ל-Objective-C. להלן דוגמאות Swift מוכנות לשימוש.
איך להעתיק curl מהדפדפן שלך
- 1
פתח את DevTools
לחץ על F12 או על Ctrl+Shift+I כדי לפתוח את כלי המפתחים של הדפדפן.
- 2
עבור ללשונית Network
לחץ על לשונית ה-Network ובצע את הפעולה שמפעילה את בקשת ה-HTTP.
- 3
העתק כ-cURL
לחץ קליק ימני על הבקשה ← Copy ← Copy as cURL. לאחר מכן הדבק אותה למעלה.
שאלות נפוצות (FAQ)
מהו Swift URLSession?
URLSession הוא לקוח ה-HTTP המובנה של Apple עבור iOS, macOS, watchOS ו-tvOS. הוא מטפל במשימות נתונים, הורדות, העלאות, WebSocket והעברות ברקע. אין צורך בהתקנת חבילה — הוא חלק מ-Foundation. תומך ב-HTTP/2, שמירה במטמון (caching) וניהול עוגיות. curl2code מייצר קוד URLSession עבור כל המרות ה-Swift.
URLSession לעומת Alamofire — במה כדאי להשתמש?
URLSession הוא מובנה ומכסה את רוב הצרכים — השתמשו בו כדי להימנע מתלות בספריות צד שלישי. Alamofire מוסיף נוחות: בוני בקשות הניתנים לשרשור (chainable), ניסיון חוזר אוטומטי, אימות תגובה והעלאות multipart. עבור פרויקטים קטנים, URLSession מספיק. לגישות מובנות דומות, עיינו ב-ממיר curl ל-Kotlin או curl ל-Objective-C.
איך מטפלים באימות (authentication) ב-Swift?
הגדירו את הכותרת (header) ב-URLRequest: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). עבור אימות Basic, בצעו קידוד עם Data("\(user):\(pass)".utf8).base64EncodedString(). curl2code ממיר דגלי -u וכותרות Bearer לקוד Swift באופן אוטומטי.
איך שולחים נתוני multipart form ב-Swift?
בנו את גוף ה-multipart באופן ידני: צרו מחרוזת boundary, הוסיפו כל שדה/קובץ עם מפרידי CRLF, והגדירו Content-Type: multipart/form-data; boundary=.... ל-multipart קל יותר, השתמשו ב-upload(multipartFormData:) של Alamofire. curl2code מטפל בהמרת דגל -F עבור URLSession.
איך מטפלים בשגיאות HTTP ב-Swift?
URLSession מחזיר Error אופציונלי ב-completions — בדקו אם הוא nil. המירו את התגובה ל-HTTPURLResponse ובדקו את ה-statusCode. עם async/await (iOS 15+), השתמשו ב-try await URLSession.shared.data(for: request) בתוך בלוק do/catch לטיפול נקי בשגיאות.
איך משתמשים ב-async/await עם URLSession?
Swift 5.5+ תומכת ב-async/await באופן טבעי: let (data, response) = try await URLSession.shared.data(for: request). זה מחליף את ה-completion handler closures בקוד ליניארי. השתמשו ב-Task { } כדי לקרוא מהקשרים סינכרוניים. לבקשות מקביליות, השתמשו ב-async let או TaskGroup. לתבניות דומות, ראו curl ל-Dart.
איך מגדירים פסקי זמן (timeouts) ב-Swift URLSession?
הגדירו ב-URLSessionConfiguration: config.timeoutIntervalForRequest = 30 (לכל בקשה) ו-config.timeoutIntervalForResource = 300 (סה"כ). או הגדירו request.timeoutInterval = 30 בבקשות בודדות. אלו תואמים לאפשרויות --max-time ו---connect-timeout של curl.
איך משתמשים ב-proxy עם URLSession?
הגדירו proxy ב-URLSessionConfiguration: config.connectionProxyDictionary = [kCFProxyHostNameKey: "proxy", kCFProxyPortNumberKey: 8080]. עבור פרוקסי SOCKS, השתמשו במפתחות kCFStreamPropertySOCKSProxy. URLSession מכבד גם הגדרות פרוקסי כלל-מערכתיות המוגדרות ב-macOS/iOS.
איך שולחים בקשת POST עם גוף JSON ב-Swift?
המירו פקודת curl POST כמו curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL ל-Swift באמצעות curl2code. הקוד שנוצר משתמש ב-request.httpBody = try JSONEncoder().encode(data). curl2code מזהה באופן אוטומטי דגלי -d/--data עם תוכן JSON ומגדיר את כותרת Content-Type המתאימה בקוד ה-URLSession.
איך מוסיפים אימות Bearer token ב-Swift?
העבירו את curl -H "Authorization: Bearer YOUR_TOKEN" URL ל-curl2code והוא יפיק קוד URLSession עם כותרת האימות: request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization"). curl2code מזהה Bearer tokens גם מדגלי -H "Authorization: Bearer ..." וגם מדגלי --oauth2-bearer. עבור Basic auth, השתמשו ב--u user:pass.
איך מגדירים כותרת Content-Type ב-Swift?
curl2code ממיר את curl -H "Content-Type: application/json" URL לקוד URLSession עם הכותרת המתאימה: request.setValue("application/json", forHTTPHeaderField: "Content-Type"). עבור נתוני -d, curl משתמש כברירת מחדל ב-application/x-www-form-urlencoded; עבור העלאות טפסים עם -F, הוא משתמש ב-multipart/form-data. curl2code ממפה כל אחד מהם ל-API הנכון של URLSession.