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

R语言httr包POST请求investing.com未返回预期JSON问题排查

错误原因

  • 请求头传递方式错误:httr包的POST()函数传入自定义请求头需要调用add_headers()方法,你直接传递列表给header参数不符合函数要求,导致所有自定义请求头都没有生效,这是Content-Type丢失的核心原因。
  • 请求参数位置错误:你抓包的XHR是POST类型请求,search_text参数需要放在请求体中传递,你错误把它放到了query参数里,相当于在URL后拼接参数,发送的POST请求没有任何有效请求体,服务器无法识别合法请求,直接返回了首页。
  • 多余的静态配置项:不要手动填写Content-Length请求头,httr会自动根据请求体的长度计算该值,手动写死很容易因为参数长度变化导致请求异常。

修正后可运行代码

library(httr)
library(jsonlite)

codeIsin <- 'FR0000120404'
investing_url <- "https://fr.investing.com/search/service/searchTopBar"

# 构造请求头
investing_headers <- add_headers(
  "User-Agent" = "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0",
  "Accept" = "application/json, text/javascript, */*; q=0.01",
  "Accept-Language" = "fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3",
  "X-Requested-With" = "XMLHttpRequest",
  "Origin" = "https://fr.investing.com"
)

# 构造请求体,encode=form会自动设置Content-Type为x-www-form-urlencoded格式
response <- POST(
  url = investing_url,
  body = list(search_text = codeIsin),
  encode = "form",
  investing_headers
)

# 解析返回的JSON结果
result <- content(response, as = "parsed")
print(result$quotes)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:36:06