使用API​​

时间:2018-03-01 16:42:00

标签: r api

我可以使用" curl"来访问API数据在终端上,但是当我使用R时会出现错误。寻找一些建议

卷曲命令:

  

卷曲-H"令牌:jQyrbzexeCEaWFIDBAwCWqbrkrVQTVhM" " https://www.ncdc.noaa.gov/cdo-web/api/v2/datasets"

R命令:

  

books_key< - "& token = jQyrbzexeCEaWFIDBAwCWqbrkrVQTVhM"

     

url< - " https://www.ncdc.noaa.gov/cdo-web/api/v2/datasets"

     

req< - fromJSON(paste0(url,books_key))

open.connection错误(con," rb"):HTTP错误400。 通常当URL中有空格(来自其他类似问题)时会出现此错误,但在我的情况下,URL中没有空格

有关使用来自网站https://www.ncdc.noaa.gov/cdo-web/webservices/v2#gettingStarted的令牌的一些信息 enter image description here

不是R问题,因为以下网站的示例有效

  

movie_key< - "& api-key = b75da00e12d54774a2d362adddcc9bef"

     

url< - " http://api.nytimes.com/svc/movies/v2/reviews/dvd-picks.json?order=by-date"

     

req< - fromJSON(paste0(url,movie_key))

2 个答案:

答案 0 :(得分:1)

你应该将令牌作为标题而不是查询参数传递,例如使用crul pkg

cli <- crul::HttpClient$new(
    url = "https://www.ncdc.noaa.gov", 
    headers = list(token = "yourtoken"))
cli$get(path = "cdo-web/api/v2/datasets")

答案 1 :(得分:0)

快速查看你的Curl和你的R调用 - 在Curl中你将令牌作为标题变量传递,在R调用中它似乎是一个查询变量。

此外,NYT呼叫在URI中有一个查询参数,因此&amp;适合R调用。