使用R语言OECD包调用get_datasets()时遭遇HTTP 404错误
解决R OECD包get_datasets()返回HTTP 404错误的方法
针对调用OECD::get_datasets()时出现的Error in read_xml.response(httr::GET(url, ...)) : Not Found (HTTP 404)错误,可尝试以下方案:
指定最新API端点
旧版本OECD包可能使用了已废弃的API地址,手动替换为当前有效的SDMX接口地址:datasets <- OECD::get_datasets(url = "https://stats.oecd.org/restsdmx/sdmx.ashx/GetDataStructure/all")若上述地址失效,可在OECD官方SDMX API文档中确认最新的数据集列表端点。
添加请求头伪装浏览器请求
部分情况下,API会拒绝非浏览器标识的请求,通过httr添加User-Agent:library(httr) datasets <- OECD::get_datasets(config = add_headers(`User-Agent` = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"))直接调用SDMX接口并解析
绕过get_datasets()函数,手动发起请求并解析XML响应:resp <- httr::GET("https://stats.oecd.org/restsdmx/sdmx.ashx/GetDataStructure/all") datasets <- xml2::read_xml(httr::content(resp, "text"))后续可根据需求将XML数据转换为数据框格式。
确认API状态
在浏览器中直接访问尝试的API地址,若也返回404,说明官方API端点已变更,需等待OECD包更新适配新地址;若浏览器能正常访问,则问题出在R包的请求配置,使用上述添加请求头的方法即可解决。
内容的提问来源于stack exchange,提问作者Joe94
相关产品推荐
相关产品推荐

