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 を使用していないため、Java からログアウトしてもブラウザーからログアウトされないことは明らかです。

それが機能する場合、gmail.com からログアウトするプログラムを作成するだけで、すべての gmail ユーザーがログアウトされると想像してください。

于 2012-12-17T18:36:14.997 に答える
0

これは、Spring MVC があなたHttpURLConnectionを完全に別の独立したセッション (ユーザー) として認識するためです。この URL を別のブラウザーまたは別のコンピューターで開いてみてください。もちろん、ログアウトされません。

認識されない理由は、JSESSIONID Cookie や書き換えられた URL などのセッション追跡情報を提供していないためです。Java からそれらを渡すことができますが、それはちょっとしたハックです。mysite.comすべてのリクエストにJSESSIONID Cookie が透過的に含まれ、Spring MVC がそれをアクティブなセッションにマップするため、ブラウザから機能します。

そうは言っても、あなたは何を達成したいですか?

于 2012-12-17T18:36:22.463 に答える