我想在登录时在我的回复中设置cookie,然后在每次请求后阅读该内容。 为此,我在登录时添加了这样的cookie:
Cookie cookieClientId = new Cookie("id", token.getTkn());
cookieClientId.setMaxAge(24*60*60);
response.addCookie(cookieClientId);
当我提出要求时,我会检查是否存在这样的cookie:
cookies = ((HttpServletRequest) request).getCookies();
cookieId = null;
if (cookies != null) {
for (Cookie ck : cookies) {
System.out.println("ck--------------- "+ck.getName());
if (ck.getName().toString().equals("id")) {
System.out.println("id cookie equal");
cookieId = ck.getValue();
System.out.println("cookie id " + cookieId);
System.out.println(cookieId.equals(authToken));
if (cookieId.equals(authToken)) {
isSecretAndKeyValid = true;
}
};
}
但我遇到的问题是我只在lo-gin请求后的第一个请求中获取cookie。在每次请求之后,我都不会使用该名称的任何cookie来罚款#id;' ,我已经在lo-gin请求时设置了。
我尝试搜索cookie添加,检索方法,我几乎在所有地方都发现了这一点。
答案 0 :(得分:0)
对于每个http请求,cookie都是隔离的,您必须在客户端存储cookie数据,然后在每个请求中,您将像这样设置cookie:
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
for (HttpCookie cookie : cookieManager.getCookieStore().getCookies()) {
cookieString += cookie.toString();
}
connection.setRequestProperty("Cookie",cookieString);