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

使用httr2请求加拿大统计局API返回406错误的原因及解决方法

解决加拿大统计局API请求406错误的问题

问题原因分析

HTTP 406 Not Acceptable错误的核心原因有两点:

  1. 请求的Accept头部设置为*/*,虽然理论上表示接受所有格式,但加拿大统计局的API要求**明确指定Accept: application/json**才能正常响应
  2. API的vectorId参数要求为数组类型,即使只查询单个ID,也需要用数组包裹,而你当前传入的是单个数值,不符合参数格式要求

修改后的请求代码

req <- request("https://www150.statcan.gc.ca/t1/wds/rest/getDataFromVectorsAndLatestNPeriods")

resp <- req |>
  req_method("POST") |>
  req_headers(Accept = "application/json") |>  # 添加明确的Accept头部
  req_body_json(
    list(
      vectorId = c(41690973),  # 将单个ID改为数组格式
      latestN = 10
    )
  ) |>
  req_perform()

逻辑说明

加拿大统计局的专用包(如cansim)内部会自动处理这些细节:设置符合要求的请求头、将参数格式化为API预期的数组类型,所以能正常返回数据。上述修改对齐了专用包的请求逻辑,应该可以解决406错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:06:16