使用每个客户的Jersey CLIENT维护cookie会话

问题描述 投票:0回答:1

我正在使用Jersey API的client部分。

我正在查询一个可以向我发送像这样的cookie的其余端点

Set-Cookie: SessionId=270080680;path=/myPath

阅读文档和其他stackoverflow答案,我能够检索cookie并将其发送回。

但是Jersey可以为每个客户自动管理此cookie处理吗?然后例如根据路径发送回需要发送的内容。

正如评论中建议的那样,正确的方法似乎是创建过滤器和拦截请求以存储和重新发送cookie。

这解决了问题的一部分,我仍然需要很聪明,并检查端点的路径以知道应该发送的Cookie。

球衣可以帮我吗?

java jersey jersey-2.0 jersey-client
1个回答
0
投票

不适用于所有人,但就我而言,此解决方案非常合适!所以我决定分享]

根据建议,我开始创建自己的过滤器,一切似乎都很好!但是有时候我看到我的cookie被复制了。

在挖掘之后,我发现了这一点,所以我处于JavaFX应用程序的特定上下文中,并使用依赖于HttpURLConnection的最简单的Jersey客户端实现。

[我注意到,从我的应用程序显示WebView开始,我的cookie就被复制了。我在WebPage.java中找到了这段代码

    if (CookieHandler.getDefault() == null) {
        boolean setDefault = Boolean.valueOf(System.getProperty(
                "com.sun.webkit.setDefaultCookieHandler",
                "true"));
        if (setDefault) {
            CookieHandler.setDefault(new CookieManager());
        }
    }

因此,该错误实际上是我的答案。就我而言,已经有人负责管理cookie

管理所有cookie jvm宽的一行是:

CookieHandler.setDefault(new CookieManager());

我让您检查文档herehere以了解如何使用它

© www.soinside.com 2019 - 2024. All rights reserved.