以编程方式登录安全服务器并维护会话

时间:2014-07-21 22:35:47

标签: java session-cookies httpsurlconnection

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

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

我已经在线阅读,为了维持会话,需要将cookie发送到下一个获取请求。除了亚马逊之外,我做了与教程中指示完全相同的事情,但它不起作用。

任何人都可以解释为什么没有为亚马逊维护会话,而是为了gmail?

提前感谢!

1 个答案:

答案 0 :(得分:0)

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

我认为,有四种可能性:

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