Конвертувати 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 від Apple для роботи з мережею HTTP в Objective-C (та Swift). Він обробляє завдання даних, завантаження, вивантаження та фонову передачу. Доступний в iOS 7+, macOS 10.9+. Сторонні залежності не потрібні — це стандартний спосіб виконання HTTP-запитів на платформах Apple. curl2code генерує код NSURLSession для Objective-C.
NSURLSession проти AFNetworking — що вибрати?
NSURLSession — це вбудоване рішення, якого достатньо для більшості потреб, без жодних залежностей. AFNetworking був популярним раніше, але зараз перебуває в режимі підтримки; його наступником є Alamofire (Swift). Для нових проєктів на Objective-C рекомендується NSURLSession. Для Swift дивіться наш конвертер curl у Swift.
Як обробляти автентифікацію в Objective-C?
Встановіть заголовок у NSMutableURLRequest: [request setValue:@"Bearer token" forHTTPHeaderField:@"Authorization"]. Для Basic-автентифікації закодуйте облікові дані за допомогою NSData та base64EncodedStringWithOptions:. curl2code перетворює -u та прапорці Bearer у правильний синтаксис Objective-C.
Як надіслати дані форми multipart в Objective-C?
Сконструюйте тіло multipart за допомогою NSMutableData: додайте рядки меж (boundary), дані полів та файлів із відповідними роздільниками CRLF. Встановіть Content-Type з межею. Це робиться вручну, але дає повний контроль. AFNetworking спрощує це за допомогою AFHTTPRequestSerializer.
Як обробляти помилки HTTP в Objective-C?
Обробники завершення NSURLSession надають параметр NSError — перевіряйте його на наявність помилок мережі/транспорту. Приведіть відповідь до NSHTTPURLResponse і перевірте statusCode. Використовуйте методи делегата NSURLSession для більш детальної обробки помилок, включаючи виклики автентифікації та перенаправлення.
Як працювати з блоками зворотного виклику в NSURLSession?
NSURLSession використовує зворотні виклики на основі блоків: [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]. Завжди викликайте [task resume] для запуску. Для послідовних запитів вкладайте блоки або використовуйте групи диспетчеризації з dispatch_group_notify.
Як встановити таймаути в Objective-C?
Встановіть у NSURLSessionConfiguration: config.timeoutIntervalForRequest = 30 та config.timeoutIntervalForResource = 300. Або для окремого запиту: request.timeoutInterval = 30. Помилки таймауту надходять як NSURLErrorTimedOut у параметрі помилки. Вони відповідають опції curl --max-time.
Як використовувати проксі з NSURLSession?
Встановіть connectionProxyDictionary у NSURLSessionConfiguration з ключами на кшталт (NSString *)kCFNetworkProxiesHTTPProxy та портом. NSURLSession за замовчуванням враховує загальносистемні налаштування проксі в 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-токена у 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
Знайдіть будь-який код завершення curl — причини, виправлення та поради з налагодження.
Завантаження файлів за допомогою curl
Зберігайте файли з -o, -O, слідкуйте за перенаправленнями, відновлюйте завантаження та інше.
SSL, TLS та проксі
Налаштування сертифікатів, версій TLS, HTTP/SOCKS-проксі та власного DNS.