You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R中调用EIA API及XML方式均遇404错误求解决方案

解决EIA API在R中返回404错误的可行方案

核心问题排查与修复步骤

  • 强制使用HTTPS协议:EIA API已不再支持HTTP请求,原HTTP端点会直接返回404。所有请求需改用https://api.eia.gov作为基础URL,这是导致你XML包调用失效的核心原因。
  • 验证API密钥有效性:确认你的EIA API密钥已在官网激活,无权限限制或过期情况。可直接在浏览器中访问构造好的HTTPS URL(替换密钥),测试是否能正常返回数据。
  • 替代eia包的手动请求方案:由于无法安装GitHub版本的eia包,可直接使用httr包构造合规请求,示例代码如下:

XML格式请求示例

library(httr)
library(XML)

eia_api_key <- "你的EIA API密钥"
target_series <- "PET.MCREXUS1.M"

# 发送HTTPS请求
response <- GET(
  url = "https://api.eia.gov/series",
  query = list(
    series_id = target_series,
    api_key = eia_api_key,
    out = "xml"
  )
)

# 检查响应状态,失败则抛出错误
stop_for_status(response)

# 解析XML内容
doc <- xmlParse(content(response, "text"))

JSON格式请求示例(更易处理)

library(httr)
library(jsonlite)

eia_api_key <- "你的EIA API密钥"
target_series <- "PET.MCREXUS1.M"

response <- GET(
  url = "https://api.eia.gov/series",
  query = list(
    series_id = target_series,
    api_key = eia_api_key,
    out = "json"
  )
)

stop_for_status(response)
# 解析为可直接使用的数据框格式
result_data <- fromJSON(content(response, "text"))$series[[1]]$data
  • 排查网络环境限制:公司防火墙可能拦截了对EIA API的HTTPS请求,需确认IT部门是否允许访问api.eia.gov的443端口,必要时配置合规代理。

内容的提问来源于stack exchange,提问作者Bnakey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 21:23:14