将 curl 转换为 R

curl2code 使用 httr 包将 curl 命令转换为 R 代码。转换过程通过 WebAssembly 在您的浏览器中运行,以确保完全的隐私。对于 Python,请查看我们的 curl 转 Python 转换器。对于 Julia,请参阅 curl 转 Julia。下方是实用的 R 示例。

如何从浏览器复制 curl

  1. 1

    打开开发者工具

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

  2. 2

    进入 Network 标签页

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

  3. 3

    复制为 cURL

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

常见问题解答

什么是 R httr?

httr 是 R 语言中最流行的 HTTP 客户端包,专为 Web API 交互设计。它提供 GET()POST()PUT() 等函数,具有自动内容类型处理和 OAuth 支持。使用 install.packages("httr") 安装。curl2code 还支持 httr2,即下一代继任者。

httr vs httr2 vs curl 包 — 该使用哪一个?

httr 稳定且应用广泛 —— 大多数 R 教程都使用它。httr2 是现代替代品,具有管道语法、内置重试和速率限制功能。curl 包是一个低级的 libcurl 封装。新项目请使用 httr2,为了兼容性请使用 httr。对于类似的数据科学工作流,请参阅 curl 转 Pythoncurl 转 Julia

如何在 R 中处理身份验证?

对于 Bearer:GET(url, add_headers(Authorization = paste("Bearer", token)))。对于 Basic 认证:GET(url, authenticate(user, pass))。httr 还通过 oauth1.0_token()oauth2.0_token() 支持 OAuth 1.0 和 2.0。curl2code 将 -u 和标头标志转换为 R 语法。

如何在 R 中发送多部分表单数据 (multipart form data)?

使用 POST(url, body = list(file = upload_file("doc.pdf"), desc = "My file"), encode = "multipart")。httr 自动处理多部分边界和 Content-Type。对于 JSON 主体,使用 encode = "json"。curl2code 将 -F 标志转换为 httr 多部分语法。

如何在 R 中处理 HTTP 错误?

使用 stop_for_status(response) 对非 2xx 抛出异常,warn_for_status() 发出警告,或 message_for_status() 显示消息。使用 status_code(response) 检查状态。封装在 tryCatch() 中进行程序化错误处理。httr2 使用 req_error() 实现可配置的错误行为。

如何在 R 中解析 JSON 响应?

使用 content(response, "parsed") 进行自动 JSON 到列表的解析,或使用 content(response, "text") 配合 jsonlite::fromJSON() 进行更多控制。jsonlite 将 JSON 转换为 R 数据框、列表和向量。对于数据分析管道,可以直接通过管道传输到 tibbledplyr

如何在 R 中设置超时?

使用 GET(url, timeout(30)) 设置 30 秒超时。httr2 使用 req_timeout(req, 30)。对于 httr2 中的重试:req_retry(req, max_tries = 3, backoff = ~ 2)。httr 没有内置重试 —— 请使用带有 tryCatch() 的循环。这些对应于 curl 的 --max-time 选项。

如何在 R 中使用代理?

使用 GET(url, use_proxy("proxy", 8080, username, password))。httr 封装了 libcurl 的代理选项。它也遵循 http_proxyhttps_proxy 环境变量。对于 SOCKS 代理,请指定方案:use_proxy("socks5://proxy:1080")。curl2code 将 -x 标志转换为 R 代理配置。

如何在 R 语言中发送带有 JSON 正文的 POST 请求?

使用 curl2code 将类似于 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 命令转换为 R。生成的代码使用 POST(url, body = data, encode = 'json')。curl2code 会自动检测带有 JSON 内容的 -d/--data 标志,并在 httr 代码中设置相应的 Content-Type 请求头。

如何在 R 语言中添加 Bearer 令牌授权?

curl -H "Authorization: Bearer YOUR_TOKEN" URL 传递给 curl2code,它会生成带有认证请求头的 httr 代码:add_headers(Authorization = 'Bearer YOUR_TOKEN')。curl2code 会从 -H "Authorization: Bearer ..."--oauth2-bearer 标志中检测 Bearer 令牌。对于 Basic auth,请使用 -u user:pass

如何在 R 语言中设置 Content-Type 请求头?

curl2code 将 curl -H "Content-Type: application/json" URL 转换为带有正确请求头的 httr 代码:content_type_json()。对于 -d 数据,curl 默认使用 application/x-www-form-urlencoded;对于 -F 表单上传,它使用 multipart/form-data。curl2code 会将每一项映射到正确的 httr API。

有用链接

curl 指南

将 curl 转换为其他语言