读取API - 从Curl到R的代码

时间:2018-04-24 01:32:24

标签: r rcurl httr

我正在尝试使用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中编写此代码的解决方案。

1 个答案:

答案 0 :(得分:3)

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
  )
)

后面的嘀嗒声仅仅是为了提醒我它们是参数(并且,它们有时包含破折号或其他强制反向报价的字符)。