Tukar curl ke Swift
Tukar arahan curl kepada kod Swift menggunakan URLSession. curl2code berjalan sepenuhnya dalam pelayar anda melalui WebAssembly — data anda kekal peribadi. Untuk Kotlin (Android), cuba penukar curl ke Kotlin kami. Untuk Objective-C, lihat curl ke Objective-C. Di bawah adalah contoh Swift yang sedia untuk digunakan.
Cara menyalin curl daripada pelayar anda
- 1
Buka DevTools
Tekan F12 atau Ctrl+Shift+I untuk membuka alat pembangun pelayar anda.
- 2
Pergi ke tab Network
Klik tab Network dan lakukan tindakan yang mencetuskan permintaan HTTP.
- 3
Salin sebagai cURL
Klik kanan pada permintaan → Copy → Copy as cURL. Kemudian tampalkannya di atas.
Soalan Lazim
Apakah itu Swift URLSession?
URLSession ialah klien HTTP terbina dalam Apple untuk iOS, macOS, watchOS, dan tvOS. Ia mengendalikan tugasan data, muat turun, muat naik, WebSocket, dan pemindahan latar belakang. Tiada pemasangan pakej diperlukan — ia adalah sebahagian daripada Foundation. Menyokong HTTP/2, caching, dan pengurusan kuki. curl2code menjana kod URLSession untuk semua penukaran Swift.
URLSession vs Alamofire — yang mana patut saya gunakan?
URLSession adalah terbina dalam dan merangkumi kebanyakan keperluan — gunakannya untuk mengelakkan kebergantungan pihak ketiga. Alamofire menambah kemudahan: pembina permintaan berantai, percubaan semula automatik, pengesahan respons, dan muat naik multipart. Untuk projek kecil, URLSession sudah mencukupi. Untuk pendekatan terbina dalam yang serupa, lihat penukar curl ke Kotlin kami atau curl ke Objective-C.
Bagaimana cara mengendalikan pengesahan dalam Swift?
Tetapkan pengepala pada URLRequest: request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization"). Untuk pengesahan Basic, kodkan dengan Data("\(user):\(pass)".utf8).base64EncodedString(). curl2code menukar bendera -u dan pengepala Bearer ke kod Swift secara automatik.
Bagaimana cara menghantar data borang multipart dalam Swift?
Bina badan multipart secara manual: jana rentetan sempadan (boundary), lampirkan setiap medan/fail dengan pemisah CRLF, dan tetapkan Content-Type: multipart/form-data; boundary=.... Untuk multipart yang lebih mudah, gunakan upload(multipartFormData:) daripada Alamofire. curl2code mengendalikan penukaran bendera -F untuk URLSession.
Bagaimana cara mengendalikan ralat HTTP dalam Swift?
URLSession mengembalikan Error pilihan dalam penyelesaian — periksa jika nil. Tukar respons kepada HTTPURLResponse dan periksa statusCode. Dengan async/await (iOS 15+), gunakan try await URLSession.shared.data(for: request) dalam blok do/catch untuk pengendalian ralat yang bersih.
Bagaimana cara menggunakan async/await dengan URLSession?
Swift 5.5+ menyokong async/await secara asli: let (data, response) = try await URLSession.shared.data(for: request). Ini menggantikan penutupan (closures) pengendali penyelesaian dengan kod linear. Gunakan Task { } untuk memanggil dari konteks segerak. Untuk permintaan serentak, gunakan async let atau TaskGroup. Untuk corak yang serupa, lihat curl ke Dart.
Bagaimana cara menetapkan had masa tamat (timeouts) dalam Swift URLSession?
Konfigurasikan pada URLSessionConfiguration: config.timeoutIntervalForRequest = 30 (setiap permintaan) dan config.timeoutIntervalForResource = 300 (jumlah keseluruhan). Atau tetapkan request.timeoutInterval = 30 pada permintaan individu. Ini dipetakan kepada pilihan --max-time dan --connect-timeout curl.
Bagaimana cara menggunakan proksi dengan URLSession?
Tetapkan proksi pada URLSessionConfiguration: config.connectionProxyDictionary = [kCFProxyHostNameKey: "proxy", kCFProxyPortNumberKey: 8080]. Untuk proksi SOCKS, gunakan kunci kCFStreamPropertySOCKSProxy. URLSession juga mematuhi tetapan proksi seluruh sistem yang dikonfigurasikan dalam tetapan macOS/iOS.
Bagaimana cara menghantar permintaan POST dengan badan JSON dalam Swift?
Tukar perintah curl POST seperti curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL ke Swift menggunakan curl2code. Kod yang dihasilkan menggunakan request.httpBody = try JSONEncoder().encode(data). curl2code mengesan bendera -d/--data secara automatik dengan kandungan JSON dan menetapkan pengepala Content-Type yang sesuai dalam kod URLSession.
Bagaimana cara menambah kebenaran token Bearer dalam Swift?
Masukkan curl -H "Authorization: Bearer YOUR_TOKEN" URL ke curl2code dan ia akan menghasilkan kod URLSession dengan pengepala auth: request.setValue("Bearer YOUR_TOKEN", forHTTPHeaderField: "Authorization"). curl2code mengesan token Bearer daripada kedua-dua bendera -H "Authorization: Bearer ..." dan --oauth2-bearer. Untuk Basic auth, gunakan -u user:pass.
Bagaimana cara menetapkan pengepala Content-Type dalam Swift?
curl2code menukar curl -H "Content-Type: application/json" URL kepada kod URLSession dengan pengepala yang betul: request.setValue("application/json", forHTTPHeaderField: "Content-Type"). Untuk data -d, curl secara lalai menggunakan application/x-www-form-urlencoded; untuk muat naik borang -F, ia menggunakan multipart/form-data. curl2code memetakan setiap satu ke API URLSession yang betul.