if (this.request != null) {
// extract any encoded session in url
this.parseEncodedSessionId();
// http get
this.parameters = new HashMap<String, List<String>>();
QueryStringDecoder qsd = new QueryStringDecoder(this.getURL());
Map<String, List<String>> qsdParameters = qsd.getParameters();
if (qsdParameters != null) {
this.parameters.putAll(qsdParameters);
}
// http post
ChannelBuffer content = request.getContent();
if (content.readable()) {
String charsetName = Constants.SC_CHARACTER_SET;
if (request.containsHeader(HttpHeaders.Names.ACCEPT_CHARSET)) {
String contentType = request.getHeader(HttpHeaders.Names.ACCEPT_CHARSET);
charsetName = contentType.indexOf("charset=") > -1 ? contentType.substring(contentType.indexOf("charset=") + 8)
: charsetName;
}
Charset charset = null;
try {
charset = Charset.forName(charsetName);
} catch (Exception e) {
charset = Charset.forName(Constants.SC_CHARACTER_SET);
LOGGER.error("invalid charset name = " + charsetName, e);
}
String param = content.toString(charset);
QueryStringDecoder queryStringDecoder = new QueryStringDecoder("/?" + param);
Map<String, List<String>> postParams = queryStringDecoder.getParameters();
this.parameters.putAll(postParams);
}
}
}