curl-ді Swift тіліне түрлендіру

curl командаларын URLSession пайдаланып, Swift кодына түрлендіріңіз. 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 — бұл 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-ді басқа тілдерге түрлендіру