המרת curl ל-Swift

המר פקודות curl לקוד Swift באמצעות URLSession. curl2code רץ כולו בדפדפן שלך דרך WebAssembly — המידע שלך נשאר פרטי. עבור Kotlin (Android), נסה את ממיר curl ל-Kotlin. עבור Objective-C, ראה curl ל-Objective-C. להלן דוגמאות Swift מוכנות לשימוש.

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

  1. 1

    פתח את DevTools

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

  2. 2

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

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

  3. 3

    העתק כ-cURL

    לחץ קליק ימני על הבקשה ← CopyCopy 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.

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

מדריכי curl

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