2015-12-02 91 views

回答

12

這不是建議,它是關於適當。一個是要求,一個是要求迴應。你可以看到兩個不同的javadoc。

Cookie

表示一個HTTP cookie的值,在一個請求傳送。

NewCookie

用於創建一個新的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(); 
相關問題