package com.eactive.httpmockserver.api.dto; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; public class MockRequest { public static Map parseQueryString(HttpServletRequest request) { Map queryParams = new HashMap<>(); String queryString = request.getQueryString(); if (queryString != null) { String[] queryParamsArr = queryString.split("&"); for (String queryParam : queryParamsArr) { String[] pair = queryParam.split("="); String key = pair[0]; String value = ""; if (pair.length > 1) { value = pair[1]; } queryParams.put(key, value); } } return queryParams; } public MockRequest(HttpServletRequest request) throws IOException { this.method = request.getMethod(); this.uri = request.getRequestURI(); this.headers = Collections.list(request.getHeaderNames()).stream() .collect(Collectors.toMap(name -> name, request::getHeader)); this.params = parseQueryString(request); this.body = request.getReader().lines().collect(Collectors.joining(System.lineSeparator())); } private String uri; private String method; private String body; private Map headers; private Map params; public String getUri() { return uri; } public void setUri(String uri) { this.uri = uri; } public String getMethod() { return method; } public void setMethod(String method) { this.method = method; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public Map getHeaders() { return headers; } public void setHeaders(Map headers) { this.headers = headers; } public String getHeader(String key) { return this.headers.get(key); } public String getParam(String key) { return this.params.get(key); } public Map getParams() { return params; } public void setParams(Map params) { this.params = params; } }