Конвертировать curl в Swift

Конвертируйте команды curl в код Swift с помощью URLSession. curl2code работает полностью в вашем браузере через WebAssembly — ваши данные остаются конфиденциальными. Для Kotlin (Android) попробуйте наш конвертер curl в Kotlin. Для Objective-C см. curl в Objective-C. Ниже приведены готовые примеры на Swift.

Как скопировать curl из браузера

  1. 1

    Откройте DevTools

    Нажмите F12 или Ctrl+Shift+I, чтобы открыть инструменты разработчика в браузере.

  2. 2

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

    Нажмите на вкладку Network и выполните действие, которое инициирует HTTP-запрос.

  3. 3

    Скопируйте как cURL

    Нажмите правой кнопкой мыши на запрос → CopyCopy as cURL. Затем вставьте его выше.

Часто задаваемые вопросы

Что такое Swift URLSession?

URLSession — это встроенный HTTP-клиент Apple для iOS, macOS, watchOS и tvOS. Он обрабатывает задачи данных, загрузки, выгрузки, WebSocket и фоновые передачи. Установка пакетов не требуется — это часть Foundation. Поддерживает HTTP/2, кэширование и управление cookie. curl2code генерирует код URLSession для всех преобразований Swift.

URLSession или Alamofire — что использовать?

URLSession встроен в систему и покрывает большинство потребностей — используйте его, чтобы избежать сторонних зависимостей. Alamofire добавляет удобства: цепочки построителей запросов, автоматические повторы, валидацию ответов и multipart-загрузки. Для небольших проектов достаточно URLSession. Для аналогичных встроенных подходов см. наш конвертер curl в Kotlin или curl в Objective-C.

Как обрабатывать аутентификацию в Swift?

Установите заголовок в URLRequest: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). Для Basic-аутентификации закодируйте данные с помощью Data("\(user):\(pass)".utf8).base64EncodedString(). curl2code автоматически преобразует флаги -u и заголовок Bearer в код Swift.

Как отправить multipart form data в Swift?

Сконструируйте тело multipart вручную: создайте строку границы (boundary), добавьте каждое поле/файл с разделителями CRLF и установите Content-Type: multipart/form-data; boundary=.... Для упрощения работы с multipart используйте upload(multipartFormData:) в Alamofire. curl2code обрабатывает преобразование флага -F для URLSession.

Как обрабатывать ошибки HTTP в Swift?

URLSession возвращает опциональную Error в замыканиях завершения — проверьте её на nil. Приведите ответ к HTTPURLResponse и проверьте statusCode. С использованием async/await (iOS 15+) используйте try await URLSession.shared.data(for: request) в блоке do/catch для чистой обработки ошибок.

Как использовать async/await с URLSession?

Swift 5.5+ нативно поддерживает async/await: let (data, response) = try await URLSession.shared.data(for: request). Это заменяет замыкания обработчиков завершения линейным кодом. Используйте Task { } для вызова из синхронных контекстов. Для параллельных запросов используйте async let или TaskGroup. Для похожих паттернов см. curl в Dart.

Как установить тайм-ауты в Swift URLSession?

Настройте в URLSessionConfiguration: config.timeoutIntervalForRequest = 30 (на запрос) и config.timeoutIntervalForResource = 300 (всего). Или установите request.timeoutInterval = 30 для отдельных запросов. Эти параметры соответствуют опциям curl --max-time и --connect-timeout.

Как использовать прокси с URLSession?

Установите прокси в URLSessionConfiguration: config.connectionProxyDictionary = [kCFProxyHostNameKey: "proxy", kCFProxyPortNumberKey: 8080]. Для SOCKS-прокси используйте ключи kCFStreamPropertySOCKSProxy. URLSession также учитывает общесистемные настройки прокси, сконфигурированные в настройках macOS/iOS.

Как отправить POST-запрос с телом JSON на Swift?

Преобразуйте команду curl POST, такую как curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL, в Swift с помощью curl2code. Сгенерированный код использует request.httpBody = try JSONEncoder().encode(data). curl2code автоматически обнаруживает флаги -d/--data с содержимым JSON и устанавливает соответствующий заголовок Content-Type в коде URLSession.

Как добавить авторизацию через Bearer token на Swift?

Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL в curl2code, и инструмент сгенерирует код URLSession с заголовком авторизации: request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization"). curl2code распознает Bearer tokens как в флагах -H "Authorization: Bearer ...", так и в --oauth2-bearer. Для Basic auth используйте -u user:pass.

Как установить заголовок Content-Type на Swift?

curl2code преобразует curl -H "Content-Type: application/json" URL в код URLSession с правильным заголовком: request.setValue("application/json", forHTTPHeaderField: "Content-Type"). Для данных -d curl по умолчанию использует application/x-www-form-urlencoded; для загрузки форм -F используется multipart/form-data. curl2code сопоставляет каждый вариант с подходящим API URLSession.

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

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

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