如何将给定curl格式API请求转换为R语言httr包可调用代码
基于httr包的API调用实现
1. 登录POST接口调用
对应curl规范的POST请求,httr实现代码如下:
# 加载httr包 library(httr) # 发起登录POST请求 login_resp <- POST( url = "https://api.com/api/login/adm", add_headers( "Content-Type" = "application/json", "Cookie" = "XXXXXXXXX" # 替换为实际可用的Cookie值 ), body = list( usuario = "XXX", # 替换为实际登录用户名 clave = "XXXXXXXXXXX" # 替换为实际登录密码 ), encode = "json" ) # 验证请求响应状态 http_status(login_resp) # 解析接口返回内容(默认自动解析JSON为R列表) login_result <- content(login_resp, "parsed")
2. 业务GET接口调用
对应curl规范的GET请求,httr实现代码如下:
# 发起GET请求 data_resp <- GET( url = "https://api-.com/api/XX/XX", # 替换为实际接口的完整路径 add_headers( "Authorization" = "Bearer XXX_XXXX", # 替换为实际授权Token,可从登录接口返回结果中提取 "Cookie" = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" # 替换为实际可用的Cookie值 ) ) # 验证请求响应状态 http_status(data_resp) # 解析接口返回内容 data_result <- content(data_resp, "parsed")
提示:若登录接口会返回有效授权Token,可直接从
login_result中提取后传入GET请求的Authorization头,无需手动填写固定Token值。
其他可实现相同需求的R包
- httr2:httr的官方迭代版本,语法对管道操作更友好,内置请求重试、错误自动校验等实用功能,是目前更推荐的新一代HTTP请求工具包
- RCurl:R生态早期的HTTP客户端工具包,底层基于libcurl,功能覆盖全面,但语法相对繁琐,目前使用普及率已低于httr系列
- crul:开源轻量HTTP请求包,对RESTful API适配性较好,支持异步请求,适合批量接口调用场景
内容的提问来源于stack exchange,提问作者Clara
相关产品推荐
相关产品推荐

