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

如何在R语言调用REST API时传递参数 附httr包POST请求示例

问题原因与修复方案

核心错误点

  • R语言中定义列表键值对使用=赋值,不支持JSON语法中的:分隔符
  • 嵌套的数组、对象结构不能直接写JSON格式的[]/{},需要用list()函数嵌套定义
  • 你当前声明的Content-Type为text/plain,但传递的是结构化JSON参数,需要调整对应头信息,同时给POST请求添加encode = "json"参数自动序列化请求体

修复后代码

library(httr)
r <- POST(
  "https://XXXXXXXX/api/locationhazardInfo",
  add_headers(
    "Content-Type" = "application/json; charset=UTF-8",
    Accept = "application/json",
    "Authorization" = paste("Bearer", tok)
  ),
  body = list(
    Latitude = 40.738269,
    Longitude = -74.02826,
    CountryCode = "USA",
    HazardLayers = list(
      list(
        LayerId = "18",
        Description = ""
      ),
      list(
        LayerId = "6",
        Description = ""
      )
    ),
    Distances = list(
      list(
        Value = 1,
        Unit = "miles"
      )
    )
  ),
  encode = "json"
)

结果验证

请求发送后可通过以下代码检查返回结果:

  • 查看响应状态码:status_code(r),返回200代表请求正常
  • 解析返回内容:content(r, "text") 可查看原始返回值,content(r, "parsed") 可自动将JSON返回值转为R列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:36:03