將 curl 轉換為 Objective-C
使用 NSURLSession 將 curl 指令轉換為 Objective-C 程式碼。curl2code 完全透過 WebAssembly 在您的瀏覽器中執行 —— 您的資料將保持私密。若需 Swift,請嘗試我們的 curl 轉 Swift 轉換器。若需 C,請參閱 curl 轉 C。下方提供即插即用的 Objective-C 範例。
如何從瀏覽器複製 curl
- 1
開啟開發者工具 (DevTools)
按下 F12 或 Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。
- 2
前往網路 (Network) 分頁
點擊 Network 分頁,並執行觸發 HTTP 請求的操作。
- 3
複製為 cURL
右鍵點擊該請求 → Copy → Copy as cURL。然後將其貼在上方。
常見問題解答
什麼是 NSURLSession?
NSURLSession 是 Apple Foundation 框架中用於 Objective-C(和 Swift)網路連線的 API。它處理數據任務、下載、上傳和背景傳輸。適用於 iOS 7+、macOS 10.9+。無需第三方依賴 —— 它是 Apple 平台中發送 HTTP 請求的標準方式。curl2code 為 Objective-C 生成 NSURLSession 程式碼。
NSURLSession vs AFNetworking — 該使用哪一個?
NSURLSession 是內建解決方案 —— 足以滿足大多數需求且零依賴。AFNetworking 歷史上很受歡迎,但現在處於維護模式;其繼任者是 Alamofire (Swift)。對於新的 Objective-C 專案,推薦使用 NSURLSession。對於 Swift,請參閱我們的 curl 轉 Swift 轉換器。
如何在 Objective-C 中處理身份驗證?
在 NSMutableURLRequest 上設置標頭:[request setValue:@"Bearer token" forHTTPHeaderField:@"Authorization"]。對於 Basic 驗證,使用 NSData 和 base64EncodedStringWithOptions: 對憑據進行編碼。curl2code 將 -u 和 Bearer 標記轉換為正確的 Objective-C 語法。
如何在 Objective-C 中發送 multipart 表單數據?
使用 NSMutableData 構建 multipart 主體:附加 boundary 字串、欄位數據和帶有正確 CRLF 分隔符的檔案數據。設置帶有 boundary 的 Content-Type。雖然這是手動操作,但提供了完全的控制。AFNetworking 使用 AFHTTPRequestSerializer 簡化了此過程。
如何在 Objective-C 中處理 HTTP 錯誤?
NSURLSession 完成處理器提供一個 NSError 參數 —— 檢查它是否有網路/傳輸錯誤。將響應轉換為 NSHTTPURLResponse 並檢查 statusCode。使用 NSURLSession 委派方法進行更細緻的錯誤處理,包括身份驗證挑戰和重新導向。
如何在 NSURLSession 中使用完成區塊(completion blocks)?
NSURLSession 使用基於區塊的回調:[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { ... }]。務必調用 [task resume] 來啟動。對於順序請求,請巢狀區塊或使用帶有 dispatch_group_notify 的 dispatch groups。
如何在 Objective-C 中設置逾時?
在 NSURLSessionConfiguration 上設置:config.timeoutIntervalForRequest = 30 和 config.timeoutIntervalForResource = 300。或者針對單個請求:request.timeoutInterval = 30。逾時錯誤會以 NSURLErrorTimedOut 形式出現在錯誤參數中。這些對應於 curl 的 --max-time 選項。
如何在 NSURLSession 中使用代理?
在 connectionProxyDictionary 上設置 NSURLSessionConfiguration,使用如 (NSString *)kCFNetworkProxiesHTTPProxy 和連接埠等鍵。NSURLSession 在 macOS 和 iOS 上預設遵循系統級代理設置。對於 PAC 檔案,請透過系統偏好設定進行配置。
如何在 Objective-C 中發送帶有 JSON 主體的 POST 請求?
使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL 的 curl POST 指令轉換為 Objective-C。生成的程式碼使用 [request setHTTPBody:[NSJSONSerialization dataWithJSONObject:dict options:0 error:nil]]。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 NSURLSession 程式碼中設置適當的 Content-Type 標頭。
如何在 Objective-C 中添加 Bearer 權杖授權?
將 curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 NSURLSession 程式碼:[request setValue:@"Bearer TOKEN" forHTTPHeaderField:@"Authorization"]。curl2code 會從 -H "Authorization: Bearer ..." 和 --oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass。
如何在 Objective-C 中設置 Content-Type 標頭?
curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 NSURLSession 程式碼:[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 NSURLSession API。