【发布时间】:2020-07-29 23:04:22
【问题描述】:
我正在使用 jersey API 的 client 部分。
我正在查询一个向我发送回这样一个 cookie 的休息端点
Set-Cookie: SessionId=270080680;path=/myPath
阅读文档和其他 Stack Overflow 答案后,我可以检索 cookie 并将其发回。
但是 Jersey 可以自动管理每个客户端的 cookie 处理吗?并根据路径发回需要发回的内容。
正如评论中所建议的,正确的方法似乎是创建一个过滤器并拦截请求以存储和重新发送 cookie。
这解决了一部分问题,我还是需要聪明点,检查端点的路径,才能知道我应该发送哪个cookie。
球衣可以帮我做吗?
【问题讨论】:
-
我会将 ClientRequestFilter 与 ClientResponseFilter 结合使用。您可以从响应过滤器中获取 cookie 并将其存储并在请求过滤器中发送出去。
-
这是我要去的地方,但这解决了部分问题。我仍然需要聪明,在我的简单示例中,我仍然需要检查请求端点是否有 /mypath 作为祖先... jersey 可以为我做吗?
-
是的,使用 ClientRequestFilter 的 ClientRequestContext。获取 UriInfo。您将找到可用于检查的 URI 相关方法。
-
好的,我会这样做,没问题。但这意味着如果我想正确的话,我需要重新发明轮子......
-
你没有重新发明任何东西,因为不存在这样的东西。我认为 RESTEasy 客户端有一些浏览器 cookie 实现,但它与 Jersey 客户端不兼容。而且我认为它可能已被弃用。但是如果源代码还在的话,你可以得到一些实现的想法。
标签: java jersey jersey-2.0 jersey-client