HTTP GET请求在正常会话中工作,但不在'隐身'会话

HTTP GET request working on normal session but not in 'incognito' session

本文关键字:会话 隐身 工作 请求 GET 常会话 HTTP      更新时间:2023-09-26

理解这个问题发生的原因有些困难,特别是在Steam环境中。

当我进入这个URL并登录到Steam时,请求通过得很好,我得到了我期待的返回。但是,当我在隐身会话中尝试请求时,我得到一组空结果。我已经查看了Steam本身用于发送此请求的代码(ctrl-f '//Load',它应该带你到相关代码)。在此请求中似乎没有传递任何识别信息,即使在隐身模式下,Steam仍然会加载该物品的价格历史图表。我不明白为什么请求不能在用户没有登录Steam的会话中工作,即使页面本身仍然会使用相同的请求显示价格历史。

由于这种情况发生在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来获取你想要的信息。

不能评论(代表太低),但供参考,项目详细信息页面的工作,因为图形的数据是在一个括号内传递的html文件。您可以设置一个DOM环境,加载html并将其删除,而无需登录。

正如其他海报提到的,你想要使用的api调用需要steamLogin cookie才能工作。