將 curl 轉換為 Dart
使用 http 套件將 curl 指令轉換為 Dart 程式碼。curl2code 完全透過 WebAssembly 在您的瀏覽器中執行 —— 您的資料將保持私密。若需 Kotlin,請嘗試我們的 curl 轉 Kotlin 轉換器。若需 Swift,請參閱 curl 轉 Swift。下方提供適用於 Flutter 的即插即用 Dart 範例。
如何從瀏覽器複製 curl
- 1
開啟開發者工具 (DevTools)
按下 F12 或 Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。
- 2
前往網路 (Network) 分頁
點擊 Network 分頁,並執行觸發 HTTP 請求的操作。
- 3
複製為 cURL
右鍵點擊該請求 → Copy → Copy as cURL。然後將其貼在上方。
常見問題解答
什麼是 Dart http 套件?
http 套件是 Dart 和 Flutter 推薦的 HTTP 用戶端。它提供了一個簡單、基於 Future 的 API,用於 GET、POST、multipart 上傳和串流。使用 dart pub add http 安裝。它適用於所有 Dart 平台 —— 行動端、網頁端和伺服器端。curl2code 將其作為 Dart 轉換的預設選項。
http vs dio vs HttpClient — 我該使用哪一個?
http 簡單且輕量 —— 非常適合基本請求。dio 增加了攔截器、FormData、下載進度顯示和取消功能。HttpClient (dart:io) 是較底層且內建的,但程式碼較冗長。對於需要攔截器的 Flutter 應用程式,請選擇 dio。對於類似的行動端用戶端,請參閱 curl 轉 Kotlin 或 curl 轉 Swift。
如何在 Dart 中處理身份驗證?
將標頭傳遞給請求:http.get(url, headers: { "Authorization": "Bearer $token" })。對於 Basic 驗證,使用 base64Encode(utf8.encode("$user:$pass")) 進行編碼。curl2code 將 -u 和 -H 'Authorization' 標記轉換為具有正確類型標頭的 Dart 程式碼。
如何在 Dart 中發送 multipart 表單數據?
使用 http.MultipartRequest:建立請求,使用 request.fields['key'] = 'value' 添加欄位,並使用 request.files.add(await http.MultipartFile.fromPath('file', path)) 添加檔案。然後使用 request.send() 發送。curl2code 將 -F 標記轉換為此模式。
如何在 Dart 中處理 HTTP 錯誤?
http 套件不會在 HTTP 錯誤時拋出異常 —— 請手動檢查 response.statusCode。將調用包裝在 try/catch 中以處理 SocketException(網路錯誤)和 TimeoutException。在長期運行的應用程式中,使用 http.Client 並配合 close() 以正確清理資源。
如何在 Dart HTTP 中使用 async/await?
所有 Dart HTTP 方法都返回 Future —— 使用 final response = await http.get(Uri.parse(url))。Dart 的 async/await 是內建於語言中的。對於並行請求,請使用 Future.wait([request1, request2])。對於類似的非同步模式,請參閱 curl 轉 TypeScript 或 curl 轉 Swift。
如何在 Dart 中設置逾時?
在任何 Future 上使用 .timeout() 方法:http.get(url).timeout(Duration(seconds: 30))。超過時間時會拋出 TimeoutException。如需更多控制,請建立一個 http.Client 並透過來自 dart:io 的底層 HttpClient 配置 connectionTimeout。
如何在 Dart 中使用代理?
使用來自 dart:io 的 HttpClient:HttpClient()..findProxy = (uri) => 'PROXY proxy:8080'。對於 http 套件,建立一個包裝了已配置 IOClient 的自定義 HttpClient。Dart 也遵循 HTTP_PROXY 和 NO_PROXY 環境變數。
如何在 Dart 中發送帶有 JSON 主體的 POST 請求?
使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 指令轉換為 Dart。生成的程式碼使用 http.post(uri, body: jsonEncode(data), headers: {'Content-Type': 'application/json'})。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 http 程式碼中設置適當的 Content-Type 標頭。
如何在 Dart 中添加 Bearer 權杖授權?
將 curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 http 程式碼:headers: {'Authorization': 'Bearer YOUR_TOKEN'}。curl2code 會從 -H "Authorization: Bearer ..." 和 --oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass。
如何在 Dart 中設置 Content-Type 標頭?
curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 http 程式碼:headers: {'Content-Type': 'application/json'}。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 http API。