package com.nabalive.framework.web; import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.handler.codec.http.HttpMethod; import org.jboss.netty.handler.codec.http.HttpRequest; import org.jboss.netty.handler.codec.http.QueryStringDecoder; import org.jboss.netty.util.CharsetUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; import java.util.Map; /** * Created by IntelliJ IDEA. * User: Julien Cheype * Date: 10/24/11 */ public class Request { private static final Logger logger = LoggerFactory.getLogger(Request.class); public final ChannelHandlerContext ctx; public final HttpRequest request; public final QueryStringDecoder qs; public final Map<String, List<String>> parameters; public final String content; public Request(ChannelHandlerContext ctx, HttpRequest request, QueryStringDecoder qs) { this.ctx = ctx; this.request = request; this.qs = qs; Map<String, List<String>> parameters = qs.getParameters(); String content = null; try { content = request.getContent().toString(CharsetUtil.UTF_8); if (request.getMethod() == HttpMethod.POST) qs = new QueryStringDecoder("/?" + content); parameters = qs.getParameters(); }catch(Exception e){ logger.debug("post request seems DATA"); logger.trace("error in parsing request", e); } this.content = content; this.parameters = parameters; } public String getParam(String key, String defaultValue) { List<String> l = parameters.get(key); if (l != null && l.size() > 0) { return l.get(0); } return null; } public String getParam(String key) { List<String> l = parameters.get(key); if (l != null && l.size() > 0) { return l.get(0); } return null; } public String getHeader(String key) { return request.getHeader(key); } public String getParamOrHeader(String key) { String result = getParam(key); if (result == null) result = request.getHeader(key); return result; } }