使用API 访问数据时出错

问题描述 投票:0回答:2

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

卷曲命令:

curl -H“token: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))

r api
2个回答
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")

0
投票

快速浏览一下你的Curl和你的R调用 - 在Curl中你将令牌作为头部变量传递,在R调用中它似乎是一个查询变量。

此外,NYT调用在URI中有一个查询参数,因此适用于R调用。

© www.soinside.com 2019 - 2024. All rights reserved.