0

我想使用 HttpURLConnection 调用 SPRING MVC 操作,只是想将其作为后台操作运行.....

String logoutUrl = "http://www.mysite.com/logout.sho";
URL url = new URL(logoutUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
etc etc....

代码运行得很好,但没有执行该操作。但是,如果我尝试使用浏览器执行此操作:http://www.mysite.com/logout.sho,它会注销我。请让我知道如何解决此问题或解决此问题的任何其他方法。

4

2 回答 2

0

如果您使用 Java 程序打开 URL 连接,则您使用的会话 ID 与浏览器使用的会话 ID 不同,因此很明显,从 Java 注销不会将您从浏览器中注销。

想象一下,如果这可行,我只需要编写一个从 gmail.com 注销的程序,然后每个 gmail 用户都会被注销。

于 2012-12-17T18:36:14.997 回答
0

这是因为 Spring MVC 将您识别HttpURLConnection为一个完全独立的、独立的会话(用户)。尝试在不同的浏览器或不同的计算机上打开此 URL - 显然它不会让您退出。

无法识别您的原因是您没有提供任何会话跟踪信息,例如 JSESSIONID cookie 或重写的 URL。您可以从 Java 传递它们,但这有点 hack。它可以在您的浏览器中运行,因为每个请求都mysite.com透明地包含 JSESSIONID cookie,并且 Spring MVC 将其映射到活动会话。

话虽如此,你想达到什么目的?

于 2012-12-17T18:36:22.463 回答