我正在使用Jersey API的client部分。
我正在查询一个可以向我发送像这样的cookie的其余端点
Set-Cookie: SessionId=270080680;path=/myPath
阅读文档和其他stackoverflow答案,我能够检索cookie并将其发送回。
但是Jersey可以为每个客户自动管理此cookie处理吗?然后例如根据路径发送回需要发送的内容。
正如评论中建议的那样,正确的方法似乎是创建过滤器和拦截请求以存储和重新发送cookie。
这解决了问题的一部分,我仍然需要很聪明,并检查端点的路径以知道应该发送的Cookie。
球衣可以帮我吗?
不适用于所有人,但就我而言,此解决方案非常合适!所以我决定分享]
根据建议,我开始创建自己的过滤器,一切似乎都很好!但是有时候我看到我的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());