小编典典

从swing应用程序到servlet进行http调用,会话未保存

java

我正在创建一个连接到Web服务器的Swing应用程序,并运行一些servlet(由我自己创建)。用户第一次连接时,会获得一个“ playerID”,该“
playerID”将保存在他的servlet会话中。当我尝试从Swing应用程序再次调用servlet时,似乎无法识别“
PlyaerID”。我正在拨打一个简单的电话以获得PlayerID。Servlet识别这种类型的请求,并发送带有“
playerID”的JSON,如果未设置(空),则发送-1。swing应用程序总是从servlet收到“ -1”答复。我尝试从浏览器运行它,一切都很好。

我的Swing客户端可能无法发出请求,并且会话将无法保存在servlet上吗?

我可以肯定地说,与Servlet通信的swing方法可以正常工作。


阅读 240

收藏
2020-11-26

共1个答案

小编典典

Servlet会话由cookie支持。您基本上需要Set- Cookie从第一个请求的响应中获取所有标头,然后将这些name=value对作为Cookie后续请求的标头传回。

目前尚不清楚您使用的是哪种HTTP客户端,但是如果使用java.net.URLConnection,则可以使用java.net.CookieHandler

// First set the default cookie manager.
CookieHandler.setDefault(new CookieManager(null, CookiePolicy.ACCEPT_ALL));

// All the following subsequent URLConnections will use the same cookie manager.
URLConnection connection = new URL(url).openConnection();
// ...

connection = new URL(url).openConnection();
// ...

connection = new URL(url).openConnection();
// ...
2020-11-26