將 curl 轉換為 R
curl2code 使用 httr 套件將 curl 指令轉換為 R 程式碼。轉換過程透過 WebAssembly 在您的瀏覽器中執行,確保完全隱私。若需 Python,請參考我們的 curl 轉 Python 轉換器。若需 Julia,請參閱 curl 轉 Julia。下方是實用的 R 範例。
如何從瀏覽器複製 curl
- 1
開啟開發者工具 (DevTools)
按下 F12 或 Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。
- 2
前往網路 (Network) 分頁
點擊 Network 分頁,並執行觸發 HTTP 請求的操作。
- 3
複製為 cURL
右鍵點擊該請求 → Copy → Copy as cURL。然後將其貼在上方。
常見問題解答
什麼是 R httr?
httr 是 R 最受歡迎的 HTTP 用戶端套件,專為 Web API 互動設計。它提供 GET()、POST()、PUT() 等函數,具備自動內容類型處理與 OAuth 支援。可透過 install.packages("httr") 安裝。curl2code 也支援 httr2,即其下一代繼承者。
httr vs httr2 vs curl 套件 — 該使用哪一個?
httr 穩定且廣泛使用 — 大多數 R 教學都使用它。httr2 是現代替代方案,具備管道語法、內建重試與速率限制。curl 套件是低階的 libcurl 封裝。新專案請使用 httr2,相容性考量則使用 httr。關於類似的資料科學工作流,請參閱 curl 轉 Python 或 curl 轉 Julia。
如何在 R 中處理驗證?
對於 Bearer:GET(url, add_headers(Authorization = paste("Bearer", token)))。對於 Basic 驗證:GET(url, authenticate(user, pass))。httr 也透過 oauth1.0_token() 與 oauth2.0_token() 支援 OAuth 1.0 與 2.0。curl2code 會將 -u 與標頭旗標轉換為 R 語法。
如何在 R 中傳送 multipart 表單資料?
使用 POST(url, body = list(file = upload_file("doc.pdf"), desc = "My file"), encode = "multipart")。httr 會自動處理 multipart boundary 與 Content-Type。對於 JSON 主體,請使用 encode = "json"。curl2code 會將 -F 旗標轉換為 httr 的 multipart 語法。
如何在 R 中處理 HTTP 錯誤?
使用 stop_for_status(response) 在非 2xx 時拋出錯誤,warn_for_status() 顯示警告,或 message_for_status() 顯示訊息。使用 status_code(response) 檢查狀態。封裝在 tryCatch() 中進行程式化錯誤處理。httr2 使用 req_error() 提供可配置的錯誤行為。
如何在 R 中解析 JSON 回應?
使用 content(response, "parsed") 進行自動 JSON 轉 list 解析,或搭配 content(response, "text") 使用 jsonlite::fromJSON() 以獲得更多控制。jsonlite 可將 JSON 轉換為 R 的 data frame、list 與 vector。對於資料分析管線,可直接透過管道傳遞至 tibble 或 dplyr。
如何在 R 中設定逾時?
使用 GET(url, timeout(30)) 設定 30 秒逾時。httr2 使用 req_timeout(req, 30)。對於 httr2 中的重試:req_retry(req, max_tries = 3, backoff = ~ 2)。httr 沒有內建重試 — 請使用 tryCatch() 搭配迴圈。這些對應於 curl 的 --max-time 選項。
如何在 R 中使用代理伺服器 (Proxy)?
使用 GET(url, use_proxy("proxy", 8080, username, password))。httr 封裝了 libcurl 的代理選項。它也遵循 http_proxy 與 https_proxy 環境變數。對於 SOCKS 代理,請指定協定:use_proxy("socks5://proxy:1080")。curl2code 會將 -x 旗標轉換為 R 代理配置。
如何在 R 中發送帶有 JSON 主體的 POST 請求?
使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 指令轉換為 R。生成的程式碼使用 POST(url, body = data, encode = 'json')。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 httr 程式碼中設置適當的 Content-Type 標頭。
如何在 R 中添加 Bearer 權杖授權?
將 curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 httr 程式碼:add_headers(Authorization = 'Bearer YOUR_TOKEN')。curl2code 會從 -H "Authorization: Bearer ..." 和 --oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass。
如何在 R 中設置 Content-Type 標頭?
curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 httr 程式碼:content_type_json()。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 httr API。