將 curl 轉換為 Perl

使用 LWP::UserAgent 將 curl 指令轉換為 Perl 程式碼。curl2code 完全透過 WebAssembly 在您的瀏覽器中執行 —— 您的資料將保持私密。若需 Python,請嘗試我們的 curl 轉 Python 轉換器。若需 Ruby,請參閱 curl 轉 Ruby。下方提供即插即用的 Perl 範例。

如何從瀏覽器複製 curl

  1. 1

    開啟開發者工具 (DevTools)

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

  2. 2

    前往網路 (Network) 分頁

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

  3. 3

    複製為 cURL

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

常見問題解答

什麼是 Perl LWP?

LWP (Library for WWW in Perl) 是 Perl 的標準 HTTP 用戶端函式庫。LWP::UserAgent 模組提供了一個功能齊全的用戶端,具有 cookie 處理、重新導向、代理支援和 SSL。使用 cpan LWPapt install libwww-perl 安裝。curl2code 將 LWP 作為 Perl 轉換的預設選項。

LWP vs HTTP::Tiny vs Mojo::UserAgent — 該使用哪一個?

LWP 功能豐富,是傳統選擇。HTTP::Tiny 是一個核心模組(無需安裝)—— 非常適合簡單請求。Mojo::UserAgent 現代化且支援非同步和 WebSocket。對於快速腳本,使用 HTTP::Tiny。對於完整功能,使用 LWP。對於類似的腳本語言,請參閱 curl 轉 Pythoncurl 轉 Ruby

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

使用 LWP:$ua->default_header('Authorization' => 'Bearer token')。對於 Basic 驗證:$ua->credentials('host:port', 'realm', 'user', 'pass')。或者在 HTTP::Request 物件上為每個請求設置標頭。curl2code 將 -u-H 'Authorization' 標記轉換為 Perl 語法。

如何在 Perl 中發送 multipart 表單數據?

使用 HTTP::Request::CommonPOST($url, Content_Type => 'form-data', Content => [file => ['path/file.pdf']])。LWP 會自動處理 multipart 邊界。對於其他欄位,將鍵值對添加到 Content 陣列中。curl2code 將 -F 標記轉換為此格式。

如何在 Perl 中處理 HTTP 錯誤?

在每個請求後檢查 $response->is_success。對於錯誤詳情:$response->status_line 返回狀態碼和訊息。即使發生錯誤,LWP 也會返回一個響應物件 —— 檢查 $response->code 獲取 HTTP 狀態。使用 diewarn 進行錯誤報告。

如何在 Perl 中解析 JSON?

使用 JSON 模組:my $data = decode_json($response->content)。對於編碼:my $json = encode_json($hashref)。使用 cpan JSON 安裝。對於 Perl 5.14+,考慮使用 JSON::PP(核心模組,無需安裝)。如需更多以 JSON 為中心的工具,請參閱 curl 轉 Go

如何在 Perl LWP 中設置逾時?

在 UserAgent 上設置:my $ua = LWP::UserAgent->new(timeout => 30)。這會以秒為單位設置整體請求逾時。對於特定的連線逾時,使用 IO::Socket::SSL 選項。LWP 未內建重試功能 —— 請手動實現或使用 LWP::UserAgent::Determined

如何在 Perl 中使用代理?

在 UserAgent 上設置:$ua->proxy(['http', 'https'], 'http://proxy:8080')。或使用環境變數:$ua->env_proxy 會讀取 HTTP_PROXYHTTPS_PROXY。對於不使用代理的例外情況:$ua->no_proxy('localhost', '.internal')。curl2code 將 -x 標記轉換為 LWP 代理調用。

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

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

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

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

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

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

實用連結

curl 指南

將 curl 轉換為其他語言