/** * Because some custom fields depend on headers not set on construction this method * must be invoked after Netty populates the headers. * * @param ctx */ public void init(ChannelHandlerContext ctx) { String contentTypeStr = headers().get(HttpHeaders.Names.CONTENT_TYPE); this.contentType = MediaType.valueOf(contentTypeStr); String accept = headers().get(HttpHeaders.Names.ACCEPT); acceptedMediaTypes = MediaType.valueOf(accept); String cookiesStr = headers().get(HttpHeaders.Names.COOKIE); if (cookiesStr != null) { Set<Cookie> cookie = CookieDecoder.decode(cookiesStr); for (Cookie c : cookie) { cookies.put(c.getName(), new HttpCookie(c)); } } QueryStringDecoder decoderQuery = new QueryStringDecoder(getUri()); queryParams.putAll(decoderQuery.parameters()); if (config.isEnableSessions()) { initSession(ctx); } }