Конвертиране на 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, кеширане и управление на бисквитки. curl2code генерира URLSession код за всички Swift конверсии.
URLSession срещу Alamofire — кое да използвам?
URLSession е вграден и покрива повечето нужди — използвайте го, за да избегнете зависимости от трети страни. Alamofire добавя удобство: билдери на заявки с верижно извикване, автоматично повторение, валидация на отговори и multipart качвания. За малки проекти URLSession е достатъчен. За подобни вградени подходи вижте нашия конвертор от curl към Kotlin или curl към Objective-C.
Как да се справя с автентикацията в Swift?
Задайте хедъра в URLRequest: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). За Basic auth кодирайте с 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). Това заменя затварящите функции (closures) на completion handler-ите с линеен код. Използвайте Task { } за извикване от синхронни контексти. За паралелни заявки използвайте async let или TaskGroup. За подобни модели вижте curl към Dart.
Как да задам таймаути в Swift URLSession?
Конфигурирайте в URLSessionConfiguration: config.timeoutIntervalForRequest = 30 (за заявка) и config.timeoutIntervalForResource = 300 (общо). Или задайте request.timeoutInterval = 30 за отделни заявки. Тези настройки съответстват на опциите --max-time и --connect-timeout на curl.
Как да използвам прокси с 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 токени както от -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.