package rfx.server.http.data; import io.netty.handler.codec.http.HttpHeaders.Names; import io.netty.handler.codec.http.HttpRequest; import java.io.Serializable; import java.util.List; import java.util.Map; import rfx.server.http.common.NettyHttpUtil; import rfx.server.util.UrlUtil; /** * the HTTP request event, only basic information for routing * * @author trieu * */ public class HttpRequestEvent implements Serializable{ private static final long serialVersionUID = 4820504738374857535L; String localIp; String remoteIp; String uriPath; Map<String, List<String>> params; HttpRequest request; public HttpRequestEvent(String localIp, String remoteIp, String uriPath, Map<String, List<String>> params, HttpRequest request) { super(); this.localIp = localIp; this.remoteIp = remoteIp; this.uriPath = uriPath; this.params = params; this.request = request; } public String getRemoteIp() { return remoteIp; } public String getUriPath() { return uriPath; } public String getLocalIp() { return localIp; } public Map<String, List<String>> getParams() { return params; } public HttpRequest getRequest() { return request; } public String getHost(){ return request.headers().get(Names.HOST); } public String getRootDomain(){ return getHost().replaceAll(UrlUtil.REGEX_FOR_ROOT_DOMAIN, ""); } public String param(String name){ return NettyHttpUtil.getParamValue(name, params); } public String param(String name, String defaultVal){ return NettyHttpUtil.getParamValue(name, params, defaultVal); } public void clear(){ this.remoteIp = null; this.uriPath = null; this.params = null; this.request = null; } @Override public String toString() { StringBuilder s = new StringBuilder(); s.append(" remoteIp: ").append(remoteIp); s.append(" localIp: ").append(localIp); s.append(" uriPath: ").append(uriPath); s.append(" params: ").append(params); return s.toString(); } public HttpRequestData toHttpRequestData(){ return new HttpRequestData(this); } }