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

使用R调用Cameo数据库API返回HTML而非JSON的问题求助

解决建议

1. 添加模拟浏览器的请求头

服务器通常会通过User-Agent字段识别请求来源,httr默认的请求标识可能被判定为非浏览器请求,从而返回HTML页面。可以添加标准浏览器的UA信息来绕过这个限制:

library(httr)
library(jsonlite)

base_url <- "https://cameo.mfa.org/api.php"

query_param <- list(action  = "query",
                    pageids = "17051",
                    format = "json",
                    prop = "extracts"
)

# 模拟Chrome浏览器的请求头
headers <- add_headers(
  `User-Agent` = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
)

parsed_content <- httr::GET(base_url, query_param, headers)

# 先打印返回内容确认格式
cat(content(parsed_content, as = "text", encoding = "UTF-8"))
# 确认是JSON后再解析
jsonlite::fromJSON(content(parsed_content, as = "text", encoding = "UTF-8"))

2. 验证请求URL的一致性

打印最终生成的请求URL,和你浏览器中能返回JSON的URL做对比,确保参数没有被错误解析:

# 输出实际请求的完整URL
message(parsed_content$url)

如果发现参数缺失或格式错误,调整query_param列表的内容。

3. 检查响应状态码与重定向

先确认请求是否成功:

# 查看HTTP状态码,200表示成功
message(parsed_content$status_code)

如果状态码是403(禁止访问)、302(重定向)等,可查看重定向历史排查问题:

# 输出所有重定向的响应头
parsed_content$all_headers

若存在多次重定向到HTML页面,可能需要手动处理重定向逻辑或补充验证参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 01:46:59