將 curl 轉換為 Perl
使用 LWP::UserAgent 將 curl 指令轉換為 Perl 程式碼。curl2code 完全透過 WebAssembly 在您的瀏覽器中執行 —— 您的資料將保持私密。若需 Python,請嘗試我們的 curl 轉 Python 轉換器。若需 Ruby,請參閱 curl 轉 Ruby。下方提供即插即用的 Perl 範例。
如何從瀏覽器複製 curl
- 1
開啟開發者工具 (DevTools)
按下 F12 或 Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。
- 2
前往網路 (Network) 分頁
點擊 Network 分頁,並執行觸發 HTTP 請求的操作。
- 3
複製為 cURL
右鍵點擊該請求 → Copy → Copy as cURL。然後將其貼在上方。
常見問題解答
什麼是 Perl LWP?
LWP (Library for WWW in Perl) 是 Perl 的標準 HTTP 用戶端函式庫。LWP::UserAgent 模組提供了一個功能齊全的用戶端,具有 cookie 處理、重新導向、代理支援和 SSL。使用 cpan LWP 或 apt install libwww-perl 安裝。curl2code 將 LWP 作為 Perl 轉換的預設選項。
LWP vs HTTP::Tiny vs Mojo::UserAgent — 該使用哪一個?
LWP 功能豐富,是傳統選擇。HTTP::Tiny 是一個核心模組(無需安裝)—— 非常適合簡單請求。Mojo::UserAgent 現代化且支援非同步和 WebSocket。對於快速腳本,使用 HTTP::Tiny。對於完整功能,使用 LWP。對於類似的腳本語言,請參閱 curl 轉 Python 或 curl 轉 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::Common:POST($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 狀態。使用 die 或 warn 進行錯誤報告。
如何在 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_PROXY 和 HTTPS_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。