gpt4 book ai didi

java - Netty - 不能用一个 CookieEncoder 设置多个 cookie

转载 作者:行者123 更新时间:2023-11-30 09:43:29 25 4
gpt4 key购买 nike

我的服务器 http 处理程序中有以下简单的测试代码:

String cookieString = request.getHeader(COOKIE);

if (cookieString != null) {
CookieDecoder cookieDecoder = new CookieDecoder();
Set<Cookie> cookies = cookieDecoder.decode(cookieString);

if (!cookies.isEmpty()) {
CookieEncoder cookieEncoder = new CookieEncoder(true);

for (Cookie cookie : cookies) {
System.out.println("---> " + cookie);
cookieEncoder.addCookie(cookie);
}
response.addHeader(SET_COOKIE, cookieEncoder.encode());
}
} else {
// set cookie for initial time (just testing)
if (true) {
CookieEncoder cookieEncoder = new CookieEncoder(true);

cookieEncoder.addCookie("key", "value");
cookieEncoder.addCookie("key2", "value2");

response.addHeader(SET_COOKIE, cookieEncoder.encode());
} else {
CookieEncoder cookieEncoder1 = new CookieEncoder(true);
CookieEncoder cookieEncoder2 = new CookieEncoder(true);

cookieEncoder1.addCookie("key", "value");
cookieEncoder2.addCookie("key2", "value2");

response.addHeader(SET_COOKIE, cookieEncoder1.encode());
response.addHeader(SET_COOKIE, cookieEncoder2.encode());
}
}

如您所见,最初我尝试设置两个虚拟 cookie。当我在 FF 中刷新页面(因此 cookie 由客户端传递)时(在 IE 和 Chrome 中也会发生),请求的 header 中只有一个 cookie 并打印出来。

但是,如果我使用单独的 CookieEncoder 设置两个 cookie(请参阅上面代码片段中的 false-clause),一切都会按预期进行。

这是预期的行为吗?我希望您可以使用一个 CookieEncoder 设置多个 cookie?

最佳答案

// Initialize Variables
ArrayList<String> cookieArray = new ArrayList<String>();

// Encode 'cooke1' to 'response' Header
encoder.addCookie(cookie1);

// Append 'cookie1' to 'cookieArray'
cookieArray.add(encoder.encode());

// Encode 'cooke2' to 'response' Header
encoder.addCookie(cookie2);

// Append 'cookie2' to 'cookieArray'
cookieArray.add(encoder.encode());

// Create Cookies using 'cookieArray'
response.setHeader("Set-Cookie", cookieArray);

关于java - Netty - 不能用一个 CookieEncoder 设置多个 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8312229/

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