curl-ді Swift тіліне түрлендіру
curl командаларын URLSession пайдаланып, Swift кодына түрлендіріңіз. 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 — бұл Apple-дің iOS, macOS, watchOS және tvOS жүйелеріне арналған кірістірілген HTTP клиенті. Ол деректер тапсырмаларын, жүктеп алуларды, жүктеп салуларды, WebSocket және фондық тасымалдауларды басқарады. Пакет орнатудың қажеті жоқ — ол Foundation бөлігі болып табылады. HTTP/2, кэштеу және cookie файлдарын басқаруды қолдайды. curl2code барлық Swift түрлендірулері үшін URLSession кодын жасайды.
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 кодына түрлендіреді.
Swift-те multipart форма деректерін қалай жіберуге болады?
Multipart денесін қолмен құрастырыңыз: шекаралық (boundary) жолды жасаңыз, әр өрісті/файлды CRLF бөлгіштерімен қосыңыз және Content-Type: multipart/form-data; boundary=... орнатыңыз. Оңайырақ multipart үшін Alamofire-дің upload(multipartFormData:) әдісін қолданыңыз. curl2code URLSession үшін -F жалаушасын түрлендіруді өңдейді.
Swift-те HTTP қателерін қалай өңдеуге болады?
URLSession аяқталу блоктарында міндетті емес Error қайтарады — nil екенін тексеріңіз. Жауапты HTTPURLResponse түріне келтіріп, statusCode мәнін тексеріңіз. Async/await (iOS 15+) көмегімен қателерді таза өңдеу үшін do/catch блогында try await URLSession.shared.data(for: request) қолданыңыз.
URLSession-мен async/await қалай қолданылады?
Swift 5.5+ нұсқасы async/await-ті жергілікті түрде қолдайды: let (data, response) = try await URLSession.shared.data(for: request). Бұл аяқталу өңдеушілерін (closures) сызықтық кодпен алмастырады. Синхронды контексттерден шақыру үшін Task { } қолданыңыз. Конкурентті сұраныстар үшін async let немесе TaskGroup қолданыңыз. Ұқсас үлгілер үшін curl-ден Dart-қа қараңыз.
Swift URLSession-де күту уақытын (timeouts) қалай орнатуға болады?
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 параметрлерінде бапталған жүйелік прокси параметрлерін ескереді.
Swift тілінде JSON денесі бар POST сұрауын қалай жіберуге болады?
curl2code құралын пайдаланып, curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL сияқты curl POST командасын Swift кодына түрлендіріңіз. Жасалған код request.httpBody = try JSONEncoder().encode(data) функциясын пайдаланады. curl2code құралы JSON мазмұны бар -d/--data жалаушаларын автоматты түрде анықтайды және URLSession кодында тиісті Content-Type тақырыбын орнатады.
Swift тілінде Bearer токенімен авторизацияны қалай қосуға болады?
curl2code құралына curl -H "Authorization: Bearer YOUR_TOKEN" URL командасын беріңіз, ол келесі авторизация тақырыбы бар URLSession кодын жасайды: request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization"). curl2code құралы Bearer токендерін -H "Authorization: Bearer ..." және --oauth2-bearer жалаушаларынан анықтайды. Basic auth үшін -u user:pass пайдаланыңыз.
Swift тілінде Content-Type тақырыбын қалай орнатуға болады?
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-ті конфигурациялау.