Μετατροπή 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. Στη συνέχεια, επικολλήστε το παραπάνω.
Συχνές Ερωτήσεις
Τι είναι το Swift URLSession;
Το URLSession είναι ο ενσωματωμένος HTTP client της Apple για iOS, macOS, watchOS και tvOS. Διαχειρίζεται εργασίες δεδομένων, λήψεις, μεταφορτώσεις, WebSocket και μεταφορές στο παρασκήνιο. Δεν απαιτείται εγκατάσταση πακέτου — αποτελεί μέρος του Foundation. Υποστηρίζει HTTP/2, προσωρινή αποθήκευση (caching) και διαχείριση cookies. Το curl2code δημιουργεί κώδικα URLSession για όλες τις μετατροπές Swift.
URLSession vs Alamofire — ποιο πρέπει να χρησιμοποιήσω;
Το URLSession είναι ενσωματωμένο και καλύπτει τις περισσότερες ανάγκες — χρησιμοποιήστε το για να αποφύγετε εξωτερικές εξαρτήσεις. Το Alamofire προσθέτει ευκολίες: αλυσιδωτούς request builders, αυτόματη επανάληψη, επικύρωση απόκρισης και μεταφορτώσεις multipart. Για μικρά έργα, το URLSession είναι επαρκές. Για παρόμοιες ενσωματωμένες προσεγγίσεις, δείτε τον μετατροπέα curl σε Kotlin ή curl σε Objective-C.
Πώς γίνεται ο χειρισμός του authentication στη Swift;
Ορίστε την κεφαλίδα στο URLRequest: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). Για Basic auth, κωδικοποιήστε με Data("\(user):\(pass)".utf8).base64EncodedString(). Το curl2code μετατρέπει αυτόματα τα flags -u και Bearer header σε κώδικα Swift.
Πώς στέλνω multipart form data στη Swift;
Κατασκευάστε το multipart σώμα χειροκίνητα: δημιουργήστε ένα boundary string, προσθέστε κάθε πεδίο/αρχείο με διαχωριστικά CRLF και ορίστε Content-Type: multipart/form-data; boundary=.... Για ευκολότερο multipart, χρησιμοποιήστε το upload(multipartFormData:) του Alamofire. Το curl2code χειρίζεται τη μετατροπή του flag -F για το URLSession.
Πώς γίνεται ο χειρισμός σφαλμάτων HTTP στη Swift;
Το URLSession επιστρέφει ένα προαιρετικό Error στα completions — ελέγξτε αν είναι nil. Μετατρέψτε την απόκριση σε HTTPURLResponse και ελέγξτε το statusCode. Με το async/await (iOS 15+), χρησιμοποιήστε το try await URLSession.shared.data(for: request) σε ένα do/catch block για καθαρό χειρισμό σφαλμάτων.
Πώς χρησιμοποιείται το 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 proxies, χρησιμοποιήστε τα κλειδιά kCFStreamPropertySOCKSProxy. Το URLSession σέβεται επίσης τις ρυθμίσεις proxy του συστήματος που έχουν διαμορφωθεί στις ρυθμίσεις 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 flags με 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 flags. Για 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 αντιστοιχίζει το καθένα στο σωστό URLSession API.
Χρήσιμοι σύνδεσμοι
Οδηγοί curl
Κωδικοί σφαλμάτων curl
Αναζητήστε οποιονδήποτε κωδικό εξόδου curl — αιτίες, λύσεις και συμβουλές αποσφαλμάτωσης.
Λήψη αρχείων με curl
Αποθηκεύστε αρχεία με -o, -O, ακολουθήστε ανακατευθύνσεις, συνεχίστε λήψεις και άλλα.
SSL, TLS & Proxy
Ρυθμίστε πιστοποιητικά, εκδόσεις TLS, HTTP/SOCKS proxy και προσαρμοσμένο DNS.