Μετατροπή 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. Στη συνέχεια, επικολλήστε το παραπάνω.

Συχνές Ερωτήσεις

Τι είναι το 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 σε άλλες γλώσσες