RapidAPI提供的R语言API调用代码运行异常问题求助
问题诊断
- 官方示例错误:R语法中,列表的键名包含连字符时不能直接作为未引用的标识符使用,会触发语法报错,正确写法是给带连字符的键名加单/双引号,或者用反引号包裹。
- 第一个自行修改版本错误:
- 鉴权参数
x-rapidapi-key、x-rapidapi-host属于请求头参数,不是URL查询参数,你将其拼接在URL查询串中本身就不符合API要求,服务器无法读取到正确的鉴权信息,因此返回401未授权错误 - URL参数拼接时错误使用冒号
:替代等号=,不符合HTTP查询串的规范格式
- 鉴权参数
- 第二个自行修改版本错误:
add_headers()中传入的头字段名错误使用下划线_替代了要求的连字符-,服务器无法识别x_rapidapi_key这个头字段,仍然读不到鉴权信息- 额外添加的
content_type("application/octet-stream")属于不必要的参数,普通GET请求不需要指定该请求头
正确可运行代码
library(httr) # 配置常量,替换为你自己的实际值 API_KEY <- "你的实际RapidAPI密钥" RAPIDAPI_HOST <- "yh-finance.p.rapidapi.com" BASE_URL <- "https://yh-finance.p.rapidapi.com/stock/v3/get-historical-data" # 构造查询参数(根据接口实际要求调整) query_params <- list( symbol = "TTF=F", region = "US" ) # 发起请求 response <- GET( url = BASE_URL, # 带连字符的头字段名用引号包裹即可符合R语法 add_headers( "x-rapidapi-key" = API_KEY, "x-rapidapi-host" = RAPIDAPI_HOST ), query = query_params ) # 查看响应状态和内容 print(response) content(response, "text")
运行后如果状态码返回200即调用成功,可直接用content(response)自动解析返回的JSON数据为R列表对象使用。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

