我可以使用" 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的令牌的一些信息
不是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))
答案 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调用。