設置多個Cookie我有以下簡單的測試代碼在我的服務器HTTP處理程序:Netty的 - 不能與一個CookieEncoder
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());
}
}
正如你所看到的,最初的時候,我嘗試設置兩個虛擬餅乾。當我在FF中刷新頁面(因此客戶端傳遞cookie)(也發生在IE和Chrome中)時,只有一個cookie位於請求的標題中並打印出來。但是,如果我使用單獨的CookieEncoder設置兩個Cookie(請參閱上面的代碼片段中的false-clause),則一切都按預期工作。
這是預期的行爲?我希望你可以用一個CookieEncoder設置多個cookie?
我相信這是'CookieEncoder'或'CookieDecoder'中的一個錯誤。你能否[請提出問題](https://github.com/netty/netty/issues)? – trustin
好吧,我會提交一個錯誤。 –