2015-12-02 194 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(); 
相关问题