將 curl 轉換為 Dart

使用 http 套件將 curl 指令轉換為 Dart 程式碼。curl2code 完全透過 WebAssembly 在您的瀏覽器中執行 —— 您的資料將保持私密。若需 Kotlin,請嘗試我們的 curl 轉 Kotlin 轉換器。若需 Swift,請參閱 curl 轉 Swift。下方提供適用於 Flutter 的即插即用 Dart 範例。

如何從瀏覽器複製 curl

  1. 1

    開啟開發者工具 (DevTools)

    按下 F12Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。

  2. 2

    前往網路 (Network) 分頁

    點擊 Network 分頁,並執行觸發 HTTP 請求的操作。

  3. 3

    複製為 cURL

    右鍵點擊該請求 → CopyCopy 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 轉 Kotlincurl 轉 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 轉 TypeScriptcurl 轉 Swift

如何在 Dart 中設置逾時?

在任何 Future 上使用 .timeout() 方法:http.get(url).timeout(Duration(seconds: 30))。超過時間時會拋出 TimeoutException。如需更多控制,請建立一個 http.Client 並透過來自 dart:io 的底層 HttpClient 配置 connectionTimeout

如何在 Dart 中使用代理?

使用來自 dart:io 的 HttpClientHttpClient()..findProxy = (uri) => 'PROXY proxy:8080'。對於 http 套件,建立一個包裝了已配置 IOClient 的自定義 HttpClient。Dart 也遵循 HTTP_PROXYNO_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。

實用連結

curl 指南

將 curl 轉換為其他語言