Chuyển đổi curl sang Perl

Chuyển đổi các lệnh curl thành mã Perl bằng LWP::UserAgent. curl2code chạy hoàn toàn trong trình duyệt của bạn thông qua WebAssembly — dữ liệu của bạn luôn được riêng tư. Đối với Python, hãy thử trình chuyển đổi curl sang Python của chúng tôi. Đối với Ruby, hãy xem curl sang Ruby. Dưới đây là các ví dụ Perl sẵn sàng sử dụng.

Cách sao chép curl từ trình duyệt của bạn

  1. 1

    Mở DevTools

    Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.

  2. 2

    Đi tới tab Network

    Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.

  3. 3

    Sao chép dưới dạng cURL

    Nhấp chuột phải vào yêu cầu → Sao chépCopy as cURL. Sau đó dán nó vào bên trên.

Câu hỏi thường gặp

Perl LWP là gì?

LWP (Library for WWW in Perl) là thư viện client HTTP tiêu chuẩn cho Perl. Mô-đun LWP::UserAgent cung cấp một client đầy đủ tính năng với xử lý cookie, chuyển hướng, hỗ trợ proxy và SSL. Cài đặt bằng cpan LWP hoặc apt install libwww-perl. curl2code sử dụng LWP làm mặc định cho các chuyển đổi Perl.

LWP so với HTTP::Tiny so với Mojo::UserAgent — nên sử dụng cái nào?

LWP giàu tính năng và là lựa chọn truyền thống. HTTP::Tiny là một mô-đun cốt lõi (không cần cài đặt) — tuyệt vời cho các yêu cầu đơn giản. Mojo::UserAgent hiện đại với hỗ trợ bất đồng bộ và WebSocket. Đối với các script nhanh, hãy sử dụng HTTP::Tiny. Đối với đầy đủ tính năng, hãy sử dụng LWP. Đối với các ngôn ngữ kịch bản tương tự, hãy xem curl sang Python hoặc curl sang Ruby.

Làm thế nào để xử lý xác thực trong Perl?

Với LWP: $ua->default_header('Authorization' => 'Bearer token'). Đối với xác thực Basic: $ua->credentials('host:port', 'realm', 'user', 'pass'). Hoặc thiết lập các header cho mỗi yêu cầu trên đối tượng HTTP::Request. curl2code chuyển đổi các cờ -u-H 'Authorization' sang cú pháp Perl.

Làm thế nào để gửi dữ liệu form multipart trong Perl?

Sử dụng HTTP::Request::Common: POST($url, Content_Type => 'form-data', Content => [file => ['path/file.pdf']]). LWP tự động xử lý các boundary multipart. Đối với các trường bổ sung, hãy thêm các cặp khóa-giá trị vào mảng Content. curl2code chuyển đổi các cờ -F sang định dạng này.

Làm thế nào để xử lý lỗi HTTP trong Perl?

Kiểm tra $response->is_success sau mỗi yêu cầu. Để biết chi tiết lỗi: $response->status_line trả về mã trạng thái và thông báo. LWP trả về một đối tượng phản hồi ngay cả khi có lỗi — hãy kiểm tra $response->code để biết trạng thái HTTP. Sử dụng die hoặc warn để báo cáo lỗi.

Làm thế nào để phân tích JSON trong Perl?

Sử dụng mô-đun JSON: my $data = decode_json($response->content). Để mã hóa: my $json = encode_json($hashref). Cài đặt bằng cpan JSON. Đối với Perl 5.14+, hãy cân nhắc JSON::PP (mô-đun cốt lõi, không cần cài đặt). Đối với các công cụ tập trung vào JSON hơn, hãy xem curl sang Go.

Làm thế nào để thiết lập timeout trong Perl LWP?

Thiết lập trên UserAgent: my $ua = LWP::UserAgent->new(timeout => 30). Điều này thiết lập timeout tổng thể cho yêu cầu tính bằng giây. Đối với timeout kết nối cụ thể, hãy sử dụng các tùy chọn IO::Socket::SSL. Việc thử lại trong LWP không được tích hợp sẵn — hãy triển khai thủ công hoặc sử dụng LWP::UserAgent::Determined.

Làm thế nào để sử dụng proxy trong Perl?

Thiết lập trên UserAgent: $ua->proxy(['http', 'https'], 'http://proxy:8080'). Hoặc sử dụng các biến môi trường: $ua->env_proxy đọc HTTP_PROXYHTTPS_PROXY. Đối với các ngoại lệ không dùng proxy: $ua->no_proxy('localhost', '.internal'). curl2code chuyển đổi các cờ -x sang các cuộc gọi proxy LWP.

Làm thế nào để gửi một yêu cầu POST với thân JSON trong Perl?

Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL sang Perl bằng cách sử dụng curl2code. Mã được tạo sử dụng $ua->post($url, Content_Type => 'application/json', Content => encode_json($data)). curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã LWP::UserAgent.

Làm thế nào để thêm xác thực Bearer token trong Perl?

Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã LWP::UserAgent với header xác thực: $req->header('Authorization' => 'Bearer YOUR_TOKEN'). curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..."--oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.

Làm thế nào để thiết lập header Content-Type trong Perl?

curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã LWP::UserAgent với header chính xác: $req->header('Content-Type' => 'application/json'). Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới LWP::UserAgent API chính xác.

Liên kết hữu ích

Hướng dẫn curl

Chuyển đổi curl sang các ngôn ngữ khác