使用R语言httr包调用Open Data Communities API获EPC证书遇401错误求助
解决EPC API调用的HTTP 401未授权问题
你遇到的401错误核心原因是认证方式不符合API要求。Open Data Communities的EPC API要求直接携带Base64格式的认证令牌作为请求头,而非使用httr::authenticate()的基础认证拆分参数模式。
以下是修正后的代码:
library(httr) epc_url <- 'https://epc.opendatacommunities.org/api/v1/domestic/certificate/219873319402019053122194154717408' # 替换为你的Base64认证令牌 base64_token <- 'XXXXXX' r <- GET( url = epc_url, accept('text/csv'), # 直接添加Authorization请求头 add_headers(Authorization = paste('Basic', base64_token)) ) stop_for_status(r) # 请求成功后解析CSV数据 if (status_code(r) == 200) { epc_data <- read.csv(text = content(r, as = 'text')) print(epc_data) }
关键修正说明:
- 直接使用
add_headers()构造Authorization头,格式为Basic [你的Base64令牌](注意Basic后有空格) - 无需拆分token和api_key,Base64令牌本身就是账号凭证编码后的完整结果
- 确保你的Base64令牌未过期,且是对应EPC API的有效凭证
额外排查步骤:
- 验证Base64令牌有效性:解码后应呈现
用户名:密码格式(对应你注册的账号信息) - 检查URL正确性:确认证书ID无拼写错误,API端点路径符合官方规范
- 确认账号权限:你的账号是否已开通住宅EPC证书数据的访问权限
内容的提问来源于stack exchange,提问作者Philip
相关产品推荐
相关产品推荐

