我在JAX-RS API javax.ws.rs.core.Cookie
和javax.ws.rs.core.NewCookie
中发现了两个类。一个人比另一个人有什么优势? 我想知道哪一个被推荐使用,什么时候使用?javax.ws.rs.core.Cookie vs javax.ws.rs.core.NewCookie,有什么区别?
感谢提前:)
我在JAX-RS API javax.ws.rs.core.Cookie
和javax.ws.rs.core.NewCookie
中发现了两个类。一个人比另一个人有什么优势? 我想知道哪一个被推荐使用,什么时候使用?javax.ws.rs.core.Cookie vs javax.ws.rs.core.NewCookie,有什么区别?
感谢提前:)
这不是建议,它是关于适当。一个是要求,一个是要求回应。你可以看到两个不同的javadoc。
表示一个HTTP cookie的值,在一个请求传送。
用于创建一个新的HTTP cookie时,在响应转移。
NewCookie
,在Response
发送时,将设置一个Set-Cookie
响应头与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()
Map<String, NewCookie> cookies = response.getCookies();
Invocation.Builder ib = target.request();
for (NewCookie cookie: cookies.values()) {
ib.cookie(cookie.toCookie());
}
Response response = ib.get();