【问题标题】:setting Cookie: JSESSIONID on client request manually在客户端请求上手动设置 Cookie: JSESSIONID
【发布时间】:2013-12-02 16:57:26
【问题描述】:

我正在制作一个将登录到服务器的摇摆应用程序;我是在使用 HttpURLConnection 提交我的请求并得到我的回复。

问题是当 httpRequest 到达服务器时,“Cookie: JSESSIONID”标头在那里,会话 id 在那里;但 request.getSession(false) 将始终返回 null。

这是我用来在客户端设置标题的代码:

connection.setRequestProperty("Cookie: JSESSIONID", client.getSessionId());

任何帮助将不胜感激

【问题讨论】:

  • 对不起,如果我误解了一些东西,但是从 client.getSessionId() 返回哪个值?如果服务器没有与您通信,您怎么能期望服务器上存在具有此 ID 的会话? cookie 应该由服务器提供给您,而不是您向服务器传达 cookie 应该是什么。
  • client.getSessionId() 将返回服务器已经提供的会话 ID。感谢您抽出宝贵时间,这是一个语法问题,现在已解决:)

标签: java swing cookies httprequest


【解决方案1】:
HttpPost httppost = new HttpPost(postData); 
CookieStore cookieStore = new BasicCookieStore(); 
BasicClientCookie cookie = new BasicClientCookie("JSESSIONID", getSessionId());

//cookie.setDomain("your domain");
cookie.setPath("/");

cookieStore.addCookie(cookie); 
client.setCookieStore(cookieStore); 
response = client.execute(httppost); 

另见Java: How to make a HTTP browsing sessionApache HttpClient 4.0.3 - how do I set cookie with sessionID for POST request

【讨论】:

  • 我使用了你的答案stackoverflow.com/questions/4166129/…,它确实解决了我的问题“connection.setRequestProperty("Cookie", "JSESSIONID=" + client.getSessionId());"不幸的是,这只是一个语法问题:S 感谢您的帮助和时间 :)
  • @Gazaz 不过这是正确的做法。当您使用为此目的提供的 API 时,不会出现语法错误。
猜你喜欢
  • 1970-01-01
  • 2020-10-21
  • 2014-03-31
  • 2017-12-09
  • 2013-11-23
  • 2020-03-09
  • 2012-03-18
  • 1970-01-01
  • 2016-06-15
相关资源
最近更新 更多