將 curl 轉換為 Ruby

curl2code 使用標準 net/http 函式庫將 curl 指令轉換為 Ruby 程式碼。所有操作皆透過 WebAssembly 在您的瀏覽器本地執行,確保完全隱私。如果您偏好 Python,請參考我們的 curl 轉 Python 轉換器。若需 Elixir,請參閱 curl 轉 Elixir。下方是實用的 Ruby 範例。

如何從瀏覽器複製 curl

  1. 1

    開啟開發者工具 (DevTools)

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

  2. 2

    前往網路 (Network) 分頁

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

  3. 3

    複製為 cURL

    右鍵點擊該請求 → CopyCopy as cURL。然後將其貼在上方。

常見問題解答

什麼是 Ruby net/http?

Ruby 的 net/http 是每個 Ruby 安裝中都包含的標準函式庫 HTTP 客戶端。它處理 GET、POST、多部分上傳、SSL 和自定義標頭。不需要安裝 gem。curl2code 也支援 HTTParty,這是一個受歡迎的 gem,透過簡潔、宣告式的 API 簡化了常見的 HTTP 模式。

net/http vs HTTParty vs Faraday — 我應該使用哪一個?

net/http 是內建且無依賴的 — 非常適合簡單的任務和腳本。HTTParty 提供簡潔的 DSL 並具備自動 JSON 解析功能。Faraday 提供中介軟體、配接器模式和最大的靈活性。關於類似的腳本編寫簡便性,請參閱我們的 curl 轉 Python 轉換器curl 轉 PHP

如何在 Ruby 中處理身份驗證?

使用 net/http:request["Authorization"] = "Bearer token"。對於基本驗證:request.basic_auth("user", "pass")。HTTParty 使用 headers: { "Authorization" => "Bearer token" }basic_auth: { username: "user", password: "pass" }。curl2code 會處理 -u 和標頭旗標。

如何在 Ruby 中發送多部分表單資料?

使用 net/http 時,請使用 multipart-post gem 或使用帶有邊界字串的 Net::HTTP::Post 手動建構多部分 body。HTTParty 使用 body: { file: File.open("path") } 簡化了此過程。curl2code 會為這兩種函式庫變體轉換 -F 旗標。

如何在 Ruby 中處理 HTTP 錯誤?

使用 net/http 時,檢查 response.is_a?(Net::HTTPSuccess) 或使用 response.value(會在非 2xx 狀態時拋出異常)。HTTParty 回傳一個帶有 .success?.code 方法的回應物件。對於持久連線,請救援(rescue)Errno::ECONNREFUSEDNet::ReadTimeout

如何在 Ruby 中發送併發 HTTP 請求?

Ruby 的標準函式庫是同步的。使用 Thread.new { ... } 進行基本併發,或使用 concurrent-ruby gem 進行執行緒池管理。對於非同步 I/O,請搭配 Async gem 使用 async-http。Typhoeus 提供平行請求佇列。關於內建的非同步支援,請參閱 curl 轉 Elixir

如何在 Ruby 中設定逾時?

使用 net/http:http.open_timeout = 10(連線)和 http.read_timeout = 30(回應)。HTTParty 接受 timeout: 30 選項。這些對應到 curl 的 --connect-timeout--max-time。務必設定逾時以避免請求無限期掛起。

如何在 Ruby 中使用代理伺服器?

使用 net/http:Net::HTTP.new(host, port, proxy_host, proxy_port)。或者設定 http_proxyhttps_proxy 環境變數 — Ruby 會自動支援這些變數。HTTParty 使用 http_proxy: 'http://proxy:8080' 選項。curl2code 會將 -x 旗標轉換為正確的 Ruby 語法。

如何在 Ruby 中發送帶有 JSON 主體的 POST 請求?

使用 curl2code 將類似 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 指令轉換為 Ruby。生成的程式碼使用 Net::HTTP.post(uri, data.to_json, 'Content-Type' => 'application/json')。curl2code 會自動偵測帶有 JSON 內容的 -d/--data 旗標,並在 net/http 程式碼中設置適當的 Content-Type 標頭。

如何在 Ruby 中添加 Bearer 權杖授權?

curl -H "Authorization: Bearer YOUR_TOKEN" URL 傳遞給 curl2code,它會生成帶有授權標頭的 net/http 程式碼:req['Authorization'] = 'Bearer YOUR_TOKEN'。curl2code 會從 -H "Authorization: Bearer ..."--oauth2-bearer 旗標中偵測 Bearer 權杖。對於 Basic auth,請使用 -u user:pass

如何在 Ruby 中設置 Content-Type 標頭?

curl2code 將 curl -H "Content-Type: application/json" URL 轉換為帶有正確標頭的 net/http 程式碼:req['Content-Type'] = 'application/json'。對於 -d 數據,curl 預設為 application/x-www-form-urlencoded;對於 -F 表單上傳,它使用 multipart/form-data。curl2code 會將每一項映射到正確的 net/http API。

實用連結

curl 指南

將 curl 轉換為其他語言