我发现JAX-RS API两个类javax.ws.rs.core.Cookie
和javax.ws.rs.core.NewCookie
.一个人比另一个人有什么好处?我想知道建议使用哪一个以及何时使用?
提前致谢 :)
这不是推荐的,它是合适的.一个是请求,一个是响应.你可以看到两个不同的javadoc.
Cookie
表示在请求中传输的HTTP cookie的值.
NewCookie
用于创建在响应中传输的新HTTP cookie .
NewCookie
,当发送时Response
,将设置带有cookie信息的Set-Cookie
响应头,并将使用cookie信息Cookie
设置Cookie
请求头.这是根据HTTP规范.
用法示例:
@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
,你将拥有NewCookie
s,你需要将它们转换为Cookie
s以用于下一个请求.这可以通过调用轻松完成newCookie.toCookie()
Mapcookies = response.getCookies(); Invocation.Builder ib = target.request(); for (NewCookie cookie: cookies.values()) { ib.cookie(cookie.toCookie()); } Response response = ib.get();