Конвертувати curl у Swift
Конвертуйте команди curl у код Swift за допомогою URLSession. curl2code працює повністю у вашому браузері через WebAssembly — ваші дані залишаються приватними. Для Kotlin (Android) спробуйте наш конвертер curl у Kotlin. Для Objective-C дивіться curl у Objective-C. Нижче наведено готові до використання приклади на Swift.
Як скопіювати curl з вашого браузера
- 1
Відкрийте DevTools
Натисніть F12 або Ctrl+Shift+I, щоб відкрити інструменти розробника у вашому браузері.
- 2
Перейдіть на вкладку Network
Натисніть на вкладку Network і виконайте дію, яка ініціює HTTP-запит.
- 3
Скопіюйте як cURL
Клацніть правою кнопкою миші на запит → Copy → Copy 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 у 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-токена у Swift?
Передайте curl -H "Authorization: Bearer YOUR_TOKEN" URL у curl2code, і він згенерує код URLSession із заголовком авторизації: request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization"). curl2code виявляє Bearer-токени як у прапорцях -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 зіставляє кожен варіант із правильним URLSession API.
Корисні посилання
Посібники з curl
Коди помилок curl
Знайдіть будь-який код завершення curl — причини, виправлення та поради з налагодження.
Завантаження файлів за допомогою curl
Зберігайте файли з -o, -O, слідкуйте за перенаправленнями, відновлюйте завантаження та інше.
SSL, TLS та проксі
Налаштування сертифікатів, версій TLS, HTTP/SOCKS-проксі та власного DNS.