0

我完成了这个在线提供的示例:http ://www.mkyong.com/java/how-to-automate-login-a-website-java-example/ 并成功地以编程方式登录到我的 gmail。本教程的方法是发送登录页面的get请求,发送post请求提交登录信息,然后发送另一个get请求以查看gmail页面。会话始终保持。

但是,当我尝试以编程方式登录亚马逊(通过获取、发布,然后再次访问特定于个人资料的页面)时,会话不会被维护。发送发布请求后,我向购物车页面发送了一个获取请求,希望获得我的个人资料的购物车。我被重定向到登录页面。

我在网上读到,为了维持会话,cookie 需要发送到下一个 get 请求。我做了与教程中指示的几乎完全相同的事情,除了亚马逊,但它不起作用。

谁能解释为什么没有为亚马逊维护会话,而是为 gmail 维护会话?

提前致谢!

4

1 回答 1

0

如果没有更多细节细节和/或查看正在使用的代码,很难回答这个问题。也就是说,您描述的问题听起来确实像 cookie 问题,因为这通常用于维护 Web 应用程序状态。

在我看来,有四种可能:

  1. 您未正确检索和设置维持与亚马逊会话所需的 cookie。
  2. 登录失败,因此甚至没有发送或设置 cookie,因此这就是再次返回登录页面的原因。
  3. 您尝试使用失败的获取访问的 url 包含一个 CSRF 令牌,您没有从前一页正确解析该令牌。
  4. 与会话管理有关的其他技术问题没有得到解决(可能是跨域相关问题,或者 Amazon 已实施保护以防止自动访问)。
于 2014-07-21T23:02:25.613 回答