package org.zend.php.zendserver.deployment.ui.chrome; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.net.URLDecoder; import java.util.HashMap; import java.util.Map; public class HttpRequest { private String method; private String request; private String path; private String query; private Map<String, String> headers = new HashMap<String, String>(); private Map<String, String> paramsMap = new HashMap<String, String>(); private String body; public String getMethod() { return method; } public void setMethod(String method) { this.method = method; } public String getRequest() { return request; } public void setRequest(String request) throws URISyntaxException { try { request = URLDecoder.decode(request, "UTF-8"); //$NON-NLS-1$ } catch (UnsupportedEncodingException e) { // ignore } this.request = request; URI uri = new URI(request); this.path = uri.getPath(); this.query = uri.getQuery(); parseQuery(); } private void parseQuery() { paramsMap.clear(); if (query == null) { return; } String[] entries = query.split("&"); //$NON-NLS-1$ for (String entry : entries) { int idx = entry.indexOf('='); String key = (idx == -1) ? entry : entry.substring(0, idx); String value = (idx == -1) ? "" : entry.substring(idx + 1); //$NON-NLS-1$ paramsMap.put(key, value); } } public String getPath() { return path; } public String getQuery() { return query; } public Map<String, String> getHeaders() { return headers; } public Map getParameterMap() { return paramsMap; } public void setBody(String body) { this.body = body; } public String getBody() { return body; } }