【问题标题】:Reading API - code from Curl to R读取 API - 从 Curl 到 R 的代码
【发布时间】:2018-04-24 01:32:23
【问题描述】:

我正在尝试使用 R 从经过身份验证的 API 读取 json,但没有成功。

我有 Curl 代码并尝试使用“curlconverter”库将其转换为 R,还尝试使用“httr”库获取它。

curl -X GET \
  'https://api.cartolafc.globo.com/auth/liga/gurudocartola-com?orderBy=campeonato&page=1' \
  -H 'Cache-Control: no-cache' \
  -H 'x-glb-token: mytoken'

我希望有一个用 R 编写此代码的解决方案。

【问题讨论】:

  • 您可以将系统调用包装在system() 命令中。或者,您可以使用诸如 curlhttr 之类的库来执行此类任务。

标签: r rcurl httr


【解决方案1】:
library(curlconverter) # devtools::install_github("hrbrmstr/curlconverter")

u <- "curl -X GET 'https://api.cartolafc.globo.com/auth/liga/gurudocartola-com?orderBy=campeonato&page=1' -H 'Cache-Control: no-cache' -H 'x-glb-token: mytoken'"

straighten(u) %>% 
  make_req()

那就是:

httr::VERB(verb = "GET", url = "https://api.cartolafc.globo.com/auth/liga/gurudocartola-com?orderBy=campeonato&page=1", 
           httr::add_headers(`Cache-Control` = "no-cache", 
                             `x-glb-token` = "mytoken"))

这非常简单(如果有人在发布问题之前进行了任何研究)转化为:

httr::GET( 
  url = "https://api.cartolafc.globo.com/auth/liga/gurudocartola-com", 
  httr::add_headers(
    `Cache-Control` = "no-cache", 
    `x-glb-token` = "mytoken"
  ),
  query = list(
    `orderBy` = "campeonato",
    `page` = 1L
  )
)

反引号只是为了提醒我它们是参数(而且,它们有时包含破折号或其他强制反引号引用的字符)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    相关资源
    最近更新 更多