Μετατροπή curl σε Objective-C
Μετατρέψτε εντολές curl σε κώδικα Objective-C χρησιμοποιώντας το NSURLSession. Το curl2code εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας μέσω WebAssembly — τα δεδομένα σας παραμένουν ιδιωτικά. Για Swift, δοκιμάστε τον μετατροπέα curl σε Swift. Για C, δείτε το curl σε C. Παρακάτω υπάρχουν έτοιμα προς χρήση παραδείγματα Objective-C.
Πώς να αντιγράψετε το curl από το πρόγραμμα περιήγησής σας
- 1
Ανοίξτε τα DevTools
Πατήστε F12 ή Ctrl+Shift+I για να ανοίξετε τα εργαλεία προγραμματιστή του προγράμματος περιήγησης.
- 2
Μεταβείτε στην καρτέλα Network
Κάντε κλικ στην καρτέλα Network και εκτελέστε την ενέργεια που ενεργοποιεί το αίτημα HTTP.
- 3
Αντιγραφή ως cURL
Κάντε δεξί κλικ στο αίτημα → Copy → Copy as cURL. Στη συνέχεια, επικολλήστε το παραπάνω.
Συχνές Ερωτήσεις
Τι είναι το NSURLSession;
Το NSURLSession είναι το API του Foundation framework της Apple για δικτύωση HTTP σε Objective-C (και Swift). Διαχειρίζεται εργασίες δεδομένων, λήψεις, μεταφορτώσεις και μεταφορές στο παρασκήνιο. Διαθέσιμο σε iOS 7+, macOS 10.9+. Δεν απαιτείται εξωτερική εξάρτηση — είναι ο τυπικός τρόπος για αιτήματα HTTP στις πλατφόρμες της Apple. Το curl2code δημιουργεί κώδικα NSURLSession για Objective-C.
NSURLSession vs AFNetworking — ποιο να χρησιμοποιήσω;
Το NSURLSession είναι η ενσωματωμένη λύση — επαρκής για τις περισσότερες ανάγκες και με μηδενικές εξαρτήσεις. Το AFNetworking ήταν ιστορικά δημοφιλές αλλά τώρα βρίσκεται σε κατάσταση συντήρησης. Ο διάδοχός του είναι το Alamofire (Swift). Για νέα έργα Objective-C, συνιστάται το NSURLSession. Για Swift, δείτε τον μετατροπέα curl σε Swift.
Πώς γίνεται ο χειρισμός του authentication στην Objective-C;
Ορίστε την κεφαλίδα στο NSMutableURLRequest: [request setValue:@"Bearer token" forHTTPHeaderField:@"Authorization"]. Για Basic auth, κωδικοποιήστε τα διαπιστευτήρια με NSData και base64EncodedStringWithOptions:. Το curl2code μετατρέπει τα flags -u και Bearer στη σωστή σύνταξη της Objective-C.
Πώς στέλνω multipart form data στην Objective-C;
Κατασκευάστε το multipart σώμα με NSMutableData: προσθέστε boundary strings, δεδομένα πεδίων και δεδομένα αρχείων με τα κατάλληλα διαχωριστικά CRLF. Ορίστε το Content-Type με το boundary. Αυτό γίνεται χειροκίνητα αλλά δίνει πλήρη έλεγχο. Το AFNetworking το απλοποιεί αυτό με το AFHTTPRequestSerializer.
Πώς γίνεται ο χειρισμός σφαλμάτων HTTP στην Objective-C;
Οι completion handlers του NSURLSession παρέχουν μια παράμετρο NSError — ελέγξτε την για σφάλματα δικτύου/μεταφοράς. Μετατρέψτε την απόκριση σε NSHTTPURLResponse και ελέγξτε το statusCode. Χρησιμοποιήστε τις μεθόδους delegate του NSURLSession για πιο λεπτομερή χειρισμό σφαλμάτων, συμπεριλαμβανομένων των authentication challenges και των ανακατευθύνσεων.
Πώς δουλεύουν τα completion blocks στο NSURLSession;
Το NSURLSession χρησιμοποιεί callbacks βασισμένα σε blocks: [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]. Πάντα να καλείτε το [task resume] για να ξεκινήσει. Για διαδοχικά αιτήματα, φωλιάστε τα blocks ή χρησιμοποιήστε dispatch groups με το dispatch_group_notify.
Πώς ορίζονται τα timeouts στην Objective-C;
Ορίστε τα στο NSURLSessionConfiguration: config.timeoutIntervalForRequest = 30 και config.timeoutIntervalForResource = 300. Ή ανά αίτημα: request.timeoutInterval = 30. Τα σφάλματα timeout εμφανίζονται ως NSURLErrorTimedOut στην παράμετρο error. Αυτά αντιστοιχούν στην επιλογή --max-time του curl.
Πώς χρησιμοποιείται ένας proxy με το NSURLSession;
Ορίστε το connectionProxyDictionary στο NSURLSessionConfiguration με κλειδιά όπως το (NSString *)kCFNetworkProxiesHTTPProxy και την πόρτα. Το NSURLSession σέβεται τις ρυθμίσεις proxy του συστήματος από προεπιλογή σε macOS και iOS. Για αρχεία PAC, ρυθμίστε τα μέσω των προτιμήσεων συστήματος.
Πώς να στείλετε ένα POST αίτημα με JSON σώμα στην Objective-C;
Μετατρέψτε μια curl POST εντολή όπως curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL σε Objective-C χρησιμοποιώντας το curl2code. Ο παραγόμενος κώδικας χρησιμοποιεί [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:dict options:0 error:nil]]. Το curl2code εντοπίζει αυτόματα τα -d/--data flags με JSON περιεχόμενο και ορίζει την κατάλληλη Content-Type κεφαλίδα στον κώδικα NSURLSession.
Πώς να προσθέσετε εξουσιοδότηση Bearer token στην Objective-C;
Περάστε το curl -H "Authorization: Bearer YOUR_TOKEN" URL στο curl2code και αυτό θα δημιουργήσει κώδικα NSURLSession με την κεφαλίδα εξουσιοδότησης: [request setValue:@"Bearer TOKEN" forHTTPHeaderField:@"Authorization"]. Το curl2code εντοπίζει τα Bearer tokens τόσο από τα -H "Authorization: Bearer ..." όσο και από τα --oauth2-bearer flags. Για Basic auth, χρησιμοποιήστε το -u user:pass.
Πώς να ορίσετε την κεφαλίδα Content-Type στην Objective-C;
Το curl2code μετατρέπει το curl -H "Content-Type: application/json" URL σε κώδικα NSURLSession με τη σωστή κεφαλίδα: [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]. Για δεδομένα -d, το curl χρησιμοποιεί από προεπιλογή το application/x-www-form-urlencoded· για μεταφορτώσεις φορμών -F, χρησιμοποιεί το multipart/form-data. Το curl2code αντιστοιχίζει το καθένα στο σωστό NSURLSession API.
Χρήσιμοι σύνδεσμοι
Οδηγοί curl
Κωδικοί σφαλμάτων curl
Αναζητήστε οποιονδήποτε κωδικό εξόδου curl — αιτίες, λύσεις και συμβουλές αποσφαλμάτωσης.
Λήψη αρχείων με curl
Αποθηκεύστε αρχεία με -o, -O, ακολουθήστε ανακατευθύνσεις, συνεχίστε λήψεις και άλλα.
SSL, TLS & Proxy
Ρυθμίστε πιστοποιητικά, εκδόσεις TLS, HTTP/SOCKS proxy και προσαρμοσμένο DNS.