Tukar curl ke Objective-C

Tukar arahan curl kepada kod Objective-C menggunakan NSURLSession. curl2code berjalan sepenuhnya dalam pelayar anda melalui WebAssembly — data anda kekal peribadi. Untuk Swift, cuba penukar curl ke Swift kami. Untuk C, lihat curl ke C. Di bawah adalah contoh Objective-C yang sedia untuk digunakan.

Cara menyalin curl daripada pelayar anda

  1. 1

    Buka DevTools

    Tekan F12 atau Ctrl+Shift+I untuk membuka alat pembangun pelayar anda.

  2. 2

    Pergi ke tab Network

    Klik tab Network dan lakukan tindakan yang mencetuskan permintaan HTTP.

  3. 3

    Salin sebagai cURL

    Klik kanan pada permintaan → CopyCopy as cURL. Kemudian tampalkannya di atas.

Soalan Lazim

Apakah itu NSURLSession?

NSURLSession ialah API rangka kerja Foundation Apple untuk rangkaian HTTP dalam Objective-C (dan Swift). Ia mengendalikan tugasan data, muat turun, muat naik, dan pemindahan latar belakang. Tersedia pada iOS 7+, macOS 10.9+. Tiada kebergantungan pihak ketiga diperlukan — ia adalah cara standard untuk membuat permintaan HTTP dalam platform Apple. curl2code menjana kod NSURLSession untuk Objective-C.

NSURLSession vs AFNetworking — yang mana patut digunakan?

NSURLSession ialah penyelesaian terbina dalam — mencukupi untuk kebanyakan keperluan dan sifar kebergantungan. AFNetworking pernah popular pada masa lalu tetapi kini dalam mod penyelenggaraan; penggantinya ialah Alamofire (Swift). Untuk projek Objective-C baharu, NSURLSession disyorkan. Untuk Swift, lihat penukar curl ke Swift kami.

Bagaimana cara mengendalikan pengesahan dalam Objective-C?

Tetapkan pengepala pada NSMutableURLRequest: [request setValue:@"Bearer token" forHTTPHeaderField:@"Authorization"]. Untuk pengesahan Basic, kodkan kelayakan dengan NSData dan base64EncodedStringWithOptions:. curl2code menukar bendera -u dan Bearer kepada sintaks Objective-C yang betul.

Bagaimana cara menghantar data borang multipart dalam Objective-C?

Bina badan multipart dengan NSMutableData: lampirkan rentetan sempadan, data medan, dan data fail dengan pemisah CRLF yang betul. Tetapkan Content-Type dengan sempadan tersebut. Ini dilakukan secara manual tetapi memberikan kawalan penuh. AFNetworking memudahkan ini dengan AFHTTPRequestSerializer.

Bagaimana cara mengendalikan ralat HTTP dalam Objective-C?

Pengendali penyelesaian NSURLSession menyediakan parameter NSError — periksa untuk ralat rangkaian/pengangkutan. Tukar respons kepada NSHTTPURLResponse dan periksa statusCode. Gunakan kaedah delegasi NSURLSession untuk pengendalian ralat yang lebih terperinci termasuk cabaran pengesahan dan lencongan.

Bagaimana cara bekerja dengan blok penyelesaian dalam NSURLSession?

NSURLSession menggunakan panggilan balik berasaskan blok: [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]. Sentiasa panggil [task resume] untuk bermula. Untuk permintaan berurutan, sarangkan blok atau gunakan kumpulan penghantaran (dispatch groups) dengan dispatch_group_notify.

Bagaimana cara menetapkan had masa tamat dalam Objective-C?

Tetapkan pada NSURLSessionConfiguration: config.timeoutIntervalForRequest = 30 dan config.timeoutIntervalForResource = 300. Atau setiap permintaan: request.timeoutInterval = 30. Ralat had masa tamat tiba sebagai NSURLErrorTimedOut dalam parameter ralat. Ini dipetakan kepada pilihan --max-time curl.

Bagaimana cara menggunakan proksi dengan NSURLSession?

Tetapkan connectionProxyDictionary pada NSURLSessionConfiguration dengan kunci seperti (NSString *)kCFNetworkProxiesHTTPProxy dan port. NSURLSession mematuhi tetapan proksi seluruh sistem secara lalai pada macOS dan iOS. Untuk fail PAC, konfigurasikan melalui keutamaan sistem.

Bagaimana cara menghantar permintaan POST dengan badan JSON dalam Objective-C?

Tukar perintah curl POST seperti curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL ke Objective-C menggunakan curl2code. Kod yang dihasilkan menggunakan [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:dict options:0 error:nil]]. curl2code mengesan bendera -d/--data secara automatik dengan kandungan JSON dan menetapkan pengepala Content-Type yang sesuai dalam kod NSURLSession.

Bagaimana cara menambah kebenaran token Bearer dalam Objective-C?

Masukkan curl -H "Authorization: Bearer YOUR_TOKEN" URL ke curl2code dan ia akan menghasilkan kod NSURLSession dengan pengepala auth: [request setValue:@"Bearer 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 Objective-C?

curl2code menukar curl -H "Content-Type: application/json" URL kepada kod NSURLSession 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 NSURLSession yang betul.

Pautan Berguna

Panduan curl

Tukar curl ke Bahasa Lain