【问题标题】:How to get cookie in filter rest api jersey如何在 filter rest api jersey 中获取 cookie
【发布时间】:2017-04-28 15:33:25
【问题描述】:

我在 Rest API 请求中从客户端发送 cookie,我想读取过滤器。我在过滤器上使用此代码来检索 cookie。

Map<String, Cookie> cookies  = requestContext.getCookies();
Cookie cookie = cookies.get("token");
String token = cookie.getValue();

但它返回 null。谁能建议我如何在过滤器上检索 cookie。

【问题讨论】:

  • 您是否尝试过遍历 cookie 的地图以查看其内容?
  • @aribeiro 我也尝试过使用 iterate Iterator it = requestContext.getCookies().entrySet().iterator();但它给了我空的迭代器。在资源上,我使用 cookieparam 获取 cookie,但我没有在过滤器上获取 cookie。
  • 你的requestContext变量是什么类型的?
  • ContainerRequestContext
  • 尝试执行以下操作:for (Cookie c : requestContext.getCookies().values()) if (cookie.getName().equals("token")) cookie = c;

标签: java rest cookies filter jersey


【解决方案1】:

为了检索您的 cookie,您应该执行以下操作:

for (Cookie c : requestContext.getCookies().values()) 
{
    if (c.getName().equals("token")) {
        cookie = c;
        break;
    }
}

老实说,我不知道为什么你不能通过它的键检索你的 cookie,因为 ContainerRequestContext documentation 声明 getCookies 返回 cookie 名称(字符串)到 Cookie 的只读映射。

【讨论】:

  • @CodeMonkeyArtist 有一个建议,所以我代表他们建议对其进行编辑,因为他们没有足够的代表这样做。
猜你喜欢
  • 1970-01-01
  • 2017-01-04
  • 2017-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
  • 1970-01-01
  • 2021-01-25
相关资源
最近更新 更多