將 curl 轉換為 Rust
curl2code 使用 reqwest crate 將 curl 指令轉換為 Rust 程式碼。轉換過程透過 WebAssembly 在您的瀏覽器中執行,確保完全隱私。若需 Go,請參考我們的 curl 轉 Go 轉換器。若需 C,請參閱 curl 轉 C。下方是包含 async/await 的實用 Rust 範例。
如何從瀏覽器複製 curl
- 1
開啟開發者工具 (DevTools)
按下 F12 或 Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。
- 2
前往網路 (Network) 分頁
點擊 Network 分頁,並執行觸發 HTTP 請求的操作。
- 3
複製為 cURL
右鍵點擊該請求 → Copy → Copy as cURL。然後將其貼在上方。
常見問題解答
什麼是 Rust reqwest?
reqwest 是 Rust 中最受歡迎的 HTTP 客戶端,建立在 hyper 之上。它提供阻塞(blocking)和非同步(async)API、透過 serde 進行自動 JSON 序列化、TLS、Cookie 處理和代理支援。使用 cargo add reqwest --features json 加入。它是 curl2code 用於 Rust 轉換的預設函式庫。
reqwest vs hyper vs ureq — 我應該使用哪一個?
如何在 Rust 中處理身份驗證?
對於 Bearer:client.get(url).bearer_auth(token)。對於 Basic:client.get(url).basic_auth(user, Some(pass))。或者使用 .header("Authorization", value) 手動設定標頭。curl2code 會將 -u 和 -H 'Authorization: ...' 旗標轉換為相應的 reqwest 方法。
如何在 Rust 中發送多部分表單資料?
使用 reqwest::multipart::Form:使用 Form::new() 建立,使用 .text("key", "value") 加入文字欄位,並使用 .file("field", path).await? 加入檔案。傳遞給 client.post(url).multipart(form)。curl2code 會處理 reqwest 多部分的 -F 旗標。
如何在 Rust 中處理 HTTP 錯誤?
reqwest 回傳 Result,成功時包裝 Response,失敗時包裝 reqwest::Error — 使用 ? 運算子進行傳播。檢查 response.status().is_success() 或呼叫 response.error_for_status()?,後者會將非 2xx 狀態碼轉換為錯誤。Rust 的型別系統可確保在編譯時顯式處理所有錯誤路徑。
reqwest 需要哪種非同步執行環境(async runtime)?
reqwest 預設需要 tokio 執行環境。在您的 main 函式加上 #[tokio::main] 註解。若要在沒有非同步執行環境的情況下進行阻塞式使用,請啟用 blocking 功能並使用 reqwest::blocking::Client。curl2code 預設會生成搭配 tokio 的非同步程式碼。關於另一個非同步生態系統,請參閱 curl 轉 Go (goroutines)。
如何在 Rust reqwest 中設定逾時?
在客戶端上設定:Client::builder().timeout(Duration::from_secs(30)).connect_timeout(Duration::from_secs(10)).build()?。針對單次請求:client.get(url).timeout(Duration::from_secs(5))。這些對應到 curl 的 --max-time 和 --connect-timeout 旗標。
如何在 reqwest 中使用代理伺服器?
在客戶端建構器上設定代理:Client::builder().proxy(Proxy::https("http://proxy:8080")?).build()?。支援 HTTP、HTTPS 和 SOCKS5 代理。reqwest 預設也支援 HTTP_PROXY 和 HTTPS_PROXY 環境變數。curl2code 會將 -x 旗標轉換為代理設定。
如何在 Rust 中發送帶有 JSON 主體的 POST 請求?
使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d "{"key":"value"}" URL 的 curl POST 指令轉換為 Rust。生成的程式碼使用 client.post(url).json(&data).send().await?。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 reqwest 程式碼中設置適當的 Content-Type 標頭。
如何在 Rust 中添加 Bearer 權杖授權?
將 curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 reqwest 程式碼:.bearer_auth("YOUR_TOKEN")。curl2code 會從 -H "Authorization: Bearer ..." 和 --oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass。
如何在 Rust 中設置 Content-Type 標頭?
curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 reqwest 程式碼:.header("Content-Type", "application/json")。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 reqwest API。