我在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();