gpt4 book ai didi

java - 如何使用 ContainerRequestContext 从 HTTP 请求中获取 JSESSIONID?

转载 作者:行者123 更新时间:2023-12-03 23:14:31 24 4
gpt4 key购买 nike

我的请求中有以下 HTTP header ,我想从中提取 JSESSIONID:

Accept=application/json
Accept-Encoding=gzip
deflate,Accept-Language=en-us
Connection=keep-alive
Content-Length=0
Content-Type=application/json
Cookie=JSESSIONID=ss0ox8w99o9142b73rssvc0r
Host=localhost:8080
User-Agent=Test_QA/34 CFNetwork/711.5.7 Darwin/14.5.0 (x86_64)

我正在使用 ContainerRequestContext 如下:

@Override
public void filter(final ContainerRequestContext requestContext) throws IOException {
System.out.println("***HEADER VALUE**: " + requestContext.getHeaderString("Cookie"));
}

得到结果为:

JSESSIONID=zv71od6l2fd41hv6yf0980khy

还有:

@Override
public void filter(final ContainerRequestContext requestContext) throws IOException {
Map<String, javax.ws.rs.core.Cookie> clientCookie = requestContext.getCookies();
System.out.println("Client Cookie Map: " + clientCookie);
}

得到结果为:

Clinet Cookie Map: {JSESSIONID=JSESSIONID=1of1x5u1s1l4hdxfg2azlep42}

从请求中提取 JSESSIONID 的最佳方法是什么?

最佳答案

退后一步

首先,REST 和 session 标识符在同一个句子中听起来不太好。

REST 中的S 表示无状态 而不是有状态。在 REST 应用程序中, session 状态必须由客户端而非服务器管理。因此,不能有任何 session 标识符。

欲了解更多信息,请查看 herehere .

从 JAX-RS 中的 cookie 中获取值

我认为您正在寻找以下解决方案:

Cookie cookie = requestContext.getCookies().get("JSESSIONID");
String value = cookie.getValue();

有关Cookie 的更多信息| ,看看documentation .

关于java - 如何使用 ContainerRequestContext 从 HTTP 请求中获取 JSESSIONID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34989456/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com