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

无法复现Chrome返回JSON的GET请求,curl执行返回HTML

问题原因与解决方法

核心原因

  • 请求头缺失:浏览器向API发起请求时,会携带Accept: application/json这类头,明确要求服务器返回JSON格式。如果curl命令里没带这个头,服务器可能默认返回HTML页面(比如错误页或跳转页)。
  • Cookie会话失效或遗漏:网站可能通过Cookie验证用户会话,复制curl时如果遗漏了浏览器中的有效Cookie,或者Cookie已过期,服务器会拒绝返回API数据,转而返回HTML。
  • User-Agent校验:部分服务器会根据请求的User-Agent识别客户端类型,curl默认的User-Agent和Chrome差异很大,可能触发服务器的不同响应逻辑。
  • 重定向异常:即使加了-L跟随重定向,若重定向后的目标是HTML页面,说明请求未通过服务器的前置校验,被引导到了非API路径。

正确复现请求的操作步骤

  1. 完整复制带所有请求头的curl命令
    在Chrome DevTools的Network面板中找到目标API请求,右键选择「Copy as cURL (bash)」,确保复制的命令包含Accept、Cookie、User-Agent这些关键头。示例命令如下:
    curl 'https://ticket.bolshoi.ru/api/v1/client/shows' \
      -H 'Accept: application/json, text/plain, */*' \
      -H 'Cookie: 从DevTools复制的完整Cookie内容' \
      -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' \
      -Lkv
    
  2. 更新有效Cookie
    如果复制的Cookie已经过期,回到浏览器的DevTools,重新复制当前会话的Cookie(确保浏览器未关闭,会话处于活跃状态)。
  3. 手动补充Accept头
    若复制的命令里没有Accept: application/json,手动添加该头,强制服务器返回JSON格式响应。
  4. 排查重定向细节
    查看-Lkv输出中的重定向记录,如果请求被多次重定向到HTML页面,说明需要先访问首页获取初始会话Cookie,再发起API请求。
  5. 逐步排查请求头
    若问题仍存在,可逐步删除非必要的请求头,只保留Accept、User-Agent、Cookie,定位是哪个头导致的响应异常。

注意事项

  • 频繁用curl请求可能触发网站反爬机制,建议测试时控制请求频率。
  • Cookie包含会话敏感信息,不要随意分享给他人。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:27:19