curl-ის კონვერტაცია Objective-C-ში

გარდაქმენით curl ბრძანებები Objective-C კოდად NSURLSession-ის გამოყენებით. curl2code მუშაობს მთლიანად თქვენს ბრაუზერში WebAssembly-ის მეშვეობით — თქვენი მონაცემები რჩება კონფიდენციალური. Swift-ისთვის სცადეთ ჩვენი curl to Swift კონვერტორი. C-სთვის იხილეთ curl to C. ქვემოთ მოცემულია გამოსაყენებლად მზა Objective-C მაგალითები.

როგორ დავაკოპიროთ curl ბრაუზერიდან

  1. 1

    გახსენით DevTools

    დააჭირეთ F12-ს ან Ctrl+Shift+I ბრაუზერის დეველოპერის ხელსაწყოების გასახსნელად.

  2. 2

    გადადით Network ტაბზე

    დააწკაპუნეთ Network ტაბს და შეასრულეთ მოქმედება, რომელიც იწვევს HTTP მოთხოვნას.

  3. 3

    დააკოპირეთ როგორც cURL

    დააწკაპუნეთ მოთხოვნას მარჯვენა ღილაკით → CopyCopy as cURL. შემდეგ ჩასვით ზემოთ.

ხშირად დასმული კითხვები

რა არის NSURLSession?

NSURLSession არის Apple-ის Foundation framework API 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 to Swift კონვერტერი.

როგორ ვმართოთ ავტორიზაცია Objective-C-ში?

დააყენეთ header-ი NSMutableURLRequest-ზე: [request setValue:@"Bearer token" forHTTPHeaderField:@"Authorization"]. Basic auth-ისთვის დააკოდირეთ მონაცემები NSData-ს და base64EncodedStringWithOptions:-ის გამოყენებით. curl2code აკონვერტირებს -u და Bearer დროშებს სწორ Objective-C სინტაქსში.

როგორ გავაგზავნოთ multipart form მონაცემები Objective-C-ში?

ააგეთ multipart body NSMutableData-ით: დაამატეთ boundary სტრიქონები, ველების მონაცემები და ფაილის მონაცემები სწორი CRLF გამყოფებით. დააყენეთ Content-Type boundary-სთან ერთად. ეს არის მანუალური პროცესი, მაგრამ გაძლევთ სრულ კონტროლს. AFNetworking ამას ამარტივებს AFHTTPRequestSerializer-ით.

როგორ ვმართოთ HTTP შეცდომები Objective-C-ში?

NSURLSession completion handler-ები გვაწვდიან NSError პარამეტრს — შეამოწმეთ იგი ქსელის/ტრანსპორტის შეცდომებზე. გადააკონვერტირეთ პასუხი NSHTTPURLResponse-ად და შეამოწმეთ statusCode. გამოიყენეთ NSURLSession დელეგატის მეთოდები უფრო დეტალური მართვისთვის, მათ შორის ავტორიზაციის გამოწვევებისა და გადამისამართებებისთვის.

როგორ ვიმუშაოთ completion block-ებთან NSURLSession-ში?

NSURLSession იყენებს block-ზე დაფუძნებულ callback-ებს: [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]. ყოველთვის გამოიძახეთ [task resume] დასაწყებად. თანმიმდევრული მოთხოვნებისთვის გამოიყენეთ ჩადგმული block-ები ან dispatch group-ები dispatch_group_notify-თან ერთად.

როგორ დავაყენოთ timeout-ები Objective-C-ში?

დააყენეთ NSURLSessionConfiguration-ზე: config.timeoutIntervalForRequest = 30 და config.timeoutIntervalForResource = 300. ან თითო მოთხოვნაზე: request.timeoutInterval = 30. Timeout შეცდომები მოდის როგორც NSURLErrorTimedOut error პარამეტრში. ეს შეესაბამება curl-ის --max-time ოფციას.

როგორ გამოვიყენოთ 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 ფლაგებს 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 ტოკენებს როგორც -H "Authorization: Bearer ...", ისე --oauth2-bearer ფლაგებიდან. 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-ის კონვერტაცია სხვა ენებზე