/**
* Implements the CFML Function gethttprequestdata
*/
package railo.runtime.functions.other;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import railo.runtime.PageContext;
import railo.runtime.exp.PageException;
import railo.runtime.ext.function.Function;
import railo.runtime.net.http.ReqRspUtil;
import railo.runtime.type.KeyImpl;
import railo.runtime.type.Struct;
import railo.runtime.type.StructImpl;
import railo.runtime.type.util.KeyConstants;
public final class GetHTTPRequestData implements Function {
private static final long serialVersionUID = 1365182999286292317L;
public static Struct call(PageContext pc ) throws PageException {
Struct sct=new StructImpl();
Struct headers=new StructImpl();
HttpServletRequest req = pc.getHttpServletRequest();
String charset = pc.getConfig().getWebCharset();
// headers
Enumeration e = req.getHeaderNames();
while(e.hasMoreElements()) {
String key=e.nextElement().toString();
headers.set(KeyImpl.init(ReqRspUtil.decode(key, charset,false)),ReqRspUtil.decode(req.getHeader(key),charset,false));
}
sct.set(KeyConstants._headers, headers);
sct.set(KeyConstants._protocol,req.getProtocol());
sct.set(KeyConstants._method,req.getMethod());
sct.set(KeyConstants._content,ReqRspUtil.getRequestBody(pc,false,""));
return sct;
}
}