Конвертировать 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 vs 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 form data в Objective-C?

Сконструируйте тело multipart с помощью NSMutableData: добавьте строки границ, данные полей и данные файлов с правильными разделителями 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 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. Для 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 сопоставляет каждый вариант с подходящим API NSURLSession.

Полезные ссылки

Руководства по curl

Конвертировать curl в другие языки