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

使用RCurl调用含多引号与括号的API出现内部服务器错误求助

问题解决:API请求内部服务器错误修复

你的R代码核心问题是JSON请求体构造错误,手动添加[和]会生成不符合API要求的格式,导致服务器无法解析返回500错误。

修正后的RCurl代码

直接给Symbols传入字符向量,toJSON会自动将其转换为标准JSON数组:

library(RCurl)
library(RJSONIO)

# 构造正确的JSON请求体
json_payload <- toJSON(list(Symbols = c("FLDB", "APOE")))

# 发送POST请求
response <- postForm(
  "https://toppgene.cchmc.org/API/lookup",
  .opts = list(
    postfields = json_payload,
    httpheader = c('Content-Type' = 'application/json') # 推荐使用标准的application/json类型
  )
)

# 解析响应结果
parsed_result <- fromJSON(response)
print(parsed_result)

错误原因说明

你原来的代码生成的JSON是:

{"Symbols":["[","FLDB","APOE","]"]}

而API实际需要的格式是:

{"Symbols":["FLDB","APOE"]}

格式不匹配导致服务器无法处理请求,返回内部错误。

更简洁的替代方案(使用httr包)

推荐使用更现代的httr包,它会自动处理JSON编码和请求头,代码更易维护:

library(httr)
library(jsonlite)

# 发送请求并自动处理JSON编码
response <- POST(
  url = "https://toppgene.cchmc.org/API/lookup",
  body = list(Symbols = c("FLDB", "APOE")),
  encode = "json"
)

# 获取解析后的响应内容
content(response, "parsed")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:25:32