将 curl 转换为 Perl

使用 LWP::UserAgent 将 curl 命令转换为 Perl 代码。curl2code 通过 WebAssembly 完全在您的浏览器中运行——您的数据保持私密。对于 Python,请尝试我们的 curl 转 Python 转换器。对于 Ruby,请参阅 curl 转 Ruby。下方是即插即用的 Perl 示例。

如何从浏览器复制 curl

  1. 1

    打开开发者工具

    F12Ctrl+Shift+I 打开浏览器开发者工具。

  2. 2

    进入 Network 标签页

    点击 Network (网络) 标签页,并执行触发 HTTP 请求的操作。

  3. 3

    复制为 cURL

    右键点击请求 → Copy (复制) → Copy as cURL (复制为 cURL)。然后将其粘贴到上方。

常见问题解答

什么是 Perl LWP?

LWP (Library for WWW in Perl) 是 Perl 的标准 HTTP 客户端库。LWP::UserAgent 模块提供了一个功能齐全的客户端,支持 Cookie 处理、重定向、代理支持和 SSL。通过 cpan LWPapt install libwww-perl 安装。curl2code 将 LWP 作为 Perl 转换的默认选择。

LWP 对比 HTTP::Tiny 对比 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 中发送多部分表单数据?

使用 HTTP::Request::CommonPOST($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 状态。使用 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 转换为其他语言