【问题标题】:HTTP GET request working on normal session but not in 'incognito' sessionHTTP GET 请求在正常会话中工作,但不在“隐身”会话中
【发布时间】:2014-08-08 12:47:12
【问题描述】:

无法理解为什么会发生此问题,尤其是在 Steam 环境中。

当我转到this URL 并登录到 Steam 时,请求顺利通过,我得到了我期望的回报。但是,当我在隐身会话中尝试请求时,我得到一组空结果。我已经查看了the code that Steam itself uses to send this request (ctrl-f '// Load',它应该带你到相关的代码)。此请求中似乎没有传递任何识别信息,即使在隐身模式下,Steam 仍会很好地加载该项目的价格历史图表。我不明白为什么该请求在用户未登录 Steam 的会话中不起作用,即使页面本身仍将使用相同的请求显示价格历史记录。

【问题讨论】:

    标签: javascript session steam


    【解决方案1】:

    由于这发生在 Valve 的服务器上,这只是对正在发生的事情的有根据的猜测。

    当您在未登录的情况下访问此 URL 时,服务器会发回 400 Bad Request

    这似乎是由于缺少steamLogin cookie。当您在未登录的情况下访问 URL 时,会设置这些 cookie

    timezoneOffset
    Steam_Language
    community_game_list_scroll_size
    recentlyVisitedAppHubs
    sessionid
    steamCC_<IP_OF_COMPUTER>
    

    登录后,当请求成功时,steamLogin cookie 也存在。

    看来你需要这个 cookie 来获取你想要的信息。

    【讨论】:

    • 这可能会解释这个问题,但是我不确定它是否解释了在加载项目页面时(例如this item's page),市场历史图表加载正常,这意味着查询通过了。不过,我会在这方面做更多的挖掘,似乎是一个很好的线索。
    • 嘿,任何有兴趣的人都可以跟进(例如发现这个的谷歌人):设置 cookie steamLogin 确实可以正确返回请求。感谢您的帮助!
    【解决方案2】:

    无法评论(代表太低),但仅供参考,项目详细信息页面有效,因为图表的数据在括号中的 html 文件内传递。您可以设置一个 DOM 环境,加载 html 并将其刮掉,而无需登录。

    正如另一张海报提到的,您要使用的 api 调用需要 steamLogin cookie 才能工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多