将 curl 转换为 Perl
使用 LWP::UserAgent 将 curl 命令转换为 Perl 代码。curl2code 通过 WebAssembly 完全在您的浏览器中运行——您的数据保持私密。对于 Python,请尝试我们的 curl 转 Python 转换器。对于 Ruby,请参阅 curl 转 Ruby。下方是即插即用的 Perl 示例。
如何从浏览器复制 curl
- 1
打开开发者工具
按 F12 或 Ctrl+Shift+I 打开浏览器开发者工具。
- 2
进入 Network 标签页
点击 Network (网络) 标签页,并执行触发 HTTP 请求的操作。
- 3
复制为 cURL
右键点击请求 → Copy (复制) → Copy as cURL (复制为 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 对比 HTTP::Tiny 对比 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 中发送多部分表单数据?
使用 HTTP::Request::Common:POST($url, Content_Type => 'form-data', Content => [file => ['path/file.pdf']])。LWP 自动处理多部分边界。对于其他字段,将键值对添加到 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。