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

Python调用Steam CSGO市场API返回400 Bad Request问题问询

解决方案

问题根因

你遇到的400错误主要是请求头配置错误、缺少Steam反爬校验要求的必要请求字段导致的,你当前加的Access-Control-Allow-Origin、Access-Control-Allow-Credentials属于服务器返回的响应头,请求侧携带无意义还会触发校验拦截。

修正步骤

  • 第一步:删除请求头中两个Access-Control-*开头的无效字段
  • 第二步:补充Steam接口要求的基础请求头,至少包含User-Agent、Referer、Accept,User-Agent建议直接复制你当前浏览器的UA值,避免使用requests默认UA
  • 第三步:将URL参数改为通过params参数传递,避免手动拼接URL导致的编码错误
  • 第四步:使用requests.Session()管理请求上下文,自动处理Cookie和重定向逻辑

修正后的代码示例

import requests as req

# 初始化会话
session = req.Session()

steam_headers = {
    'Cookie': 'steamMachineAuth76561199034404601=[AUTH];steamRememberLogin=[TOKEN];steamLoginSecure=[TOKEN];',
    # 替换为你自己浏览器的User-Agent
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
    'Referer': 'https://steamcommunity.com/market/',
    'Accept': 'application/json, text/javascript, */*; q=0.01'
}

def item_buy_request(item_id):
    params = {
        'country': 'FR',
        'language': 'ENGLISH',
        'currency': 3,
        'item_nameid': item_id,
        'two_factor': 0,
        'norender': 1
    }
    r = session.get('https://steamcommunity.com/market/itemordershistogram', headers=steam_headers, params=params)
    # 可选:校验状态码
    r.raise_for_status()
    return r.text

额外注意事项

如果修改后还是出现异常,可以检查本地IP是否被Steam临时限流,可等待1-2小时后重试,或切换网络节点测试。你在reqbin请求失败大概率是reqbin的公共出口IP已经被Steam标记拦截,不影响本地请求的有效性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 17:48:03