Конвертувати curl у Objective-C

Конвертуйте команди curl у код Objective-C за допомогою NSURLSession. curl2code працює повністю у вашому браузері через WebAssembly — ваші дані залишаються приватними. Для Swift спробуйте наш конвертер curl у Swift. Для C дивіться curl у C. Нижче наведено готові до використання приклади на Objective-C.

Як скопіювати curl з вашого браузера

  1. 1

    Відкрийте DevTools

    Натисніть F12 або Ctrl+Shift+I, щоб відкрити інструменти розробника у вашому браузері.

  2. 2

    Перейдіть на вкладку Network

    Натисніть на вкладку Network і виконайте дію, яка ініціює HTTP-запит.

  3. 3

    Скопіюйте як cURL

    Клацніть правою кнопкою миші на запит → CopyCopy 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 в інші мови