gpt4 book ai didi

javax.ws.rs.core.Cookie vs javax.ws.rs.core.NewCookie ,有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:25 25 4
gpt4 key购买 nike

我在 JAX-RS API javax.ws.rs.core.Cookiejavax.ws.rs.core.NewCookie 中找到了两个类。一个比另一个有什么优势?我想知道推荐使用哪一个以及何时使用?

提前致谢:)

最佳答案

不是推荐,而是合适。一种用于请求,一种用于响应。您可以看到两个不同的 javadoc。

Cookie

Represents the value of a HTTP cookie, transferred in a request.

NewCookie

Used to create a new HTTP cookie, transferred in a response.

NewCookie,当在 Response 中发送时,将使用 cookie 设置一个 Set-Cookie response header 信息,Cookie 将使用 cookie 信息设置 Cookie request header 。这是根据 HTTP 规范。

示例用法:

@GET
public Response get() {
return Response.ok("blah")
.cookie(new NewCookie("foo-cookie", "StAcKoVeRfLoW2020"))
.build();
}

[..]

Client client = ClientBuilder.newClient();
Response response = client
.target("https://cookieurl.com/api/some-resource")
.request()
.cookie(new Cookie("foo-cookie", "StAcKoVeRfLoW2020"))
.get();

@Path("some-resource")
public class SomeResource {

@POST
public Response post(@CookieParam("foo-cookie") Cookie cookie) {
}
}

通常在客户端,您不会像我那样手动创建Cookie。大多数时候,您会从初始请求的响应中获取 cookie,然后将这些 cookie 发回。这意味着在 Response 中,您将拥有 NewCookie,您需要将它们转换为 Cookie 以用于下一个请求。这可以通过调用 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();

关于javax.ws.rs.core.Cookie vs javax.ws.rs.core.NewCookie ,有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34046292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com