我在JAX-RS API javax.ws.rs.core.Cookie和中找到了两个类javax.ws.rs.core.NewCookie。一个人比另一个人有什么优势?我想知道推荐使用哪一种,何时使用?
javax.ws.rs.core.Cookie
javax.ws.rs.core.NewCookie
提前致谢 :)
这不是 建议 ,而是 适当的 。一个是请求,一个是响应。您可以看到两个不同的javadocs。
Cookie
表示在 请求中 传输的HTTP cookie的值。
NewCookie
用于创建新的HTTP cookie,并在 response中进行 传输。
NewCookie在中发送时Response,将使用cookie信息设置Set-Cookie 响应 标头,并使用cookie信息Cookie设置Cookie 请求 标头。这是根据HTTP规范。
Response
Set-Cookie
用法示例:
@GET public Response get() { return Response.ok("blah").cookie(new NewCookie("foo", "bar")).build(); } [..] Client client = ClientBuilder.newClient(); Response response = client.target(url).request().cookie(new Cookie("foo", "bar")).get();
通常在客户端,您不会Cookie像我那样手动创建。大多数时候,您会从初始请求的响应中获取cookie,然后将这些cookie发送回去。这意味着,在中Response,您将有NewCookies,并且您需要将它们转换为Cookies,以用于下一个请求。只需致电即可轻松实现newCookie.toCookie()
newCookie.toCookie()
Map<String, NewCookie> cookies = response.getCookies(); Invocation.Builder ib = target.request(); for (NewCookie cookie: cookies.values()) { ib.cookie(cookie.toCookie()); } Response response = ib.get();