How do I print the content of httprequest request? How do I print the content of httprequest request? java java

How do I print the content of httprequest request?


You can print the request type using:

request.getMethod();

You can print all the headers as mentioned here:

Enumeration<String> headerNames = request.getHeaderNames();while(headerNames.hasMoreElements()) {  String headerName = headerNames.nextElement();  System.out.println("Header Name - " + headerName + ", Value - " + request.getHeader(headerName));}

To print all the request params, use this:

Enumeration<String> params = request.getParameterNames(); while(params.hasMoreElements()){ String paramName = params.nextElement(); System.out.println("Parameter Name - "+paramName+", Value - "+request.getParameter(paramName));}

request is the instance of HttpServletRequest

You can beautify the outputs as you desire.


This should be more helpful for debug.Answer from @Juned Ahsan will not specify full URL and will not print multiple headers/parameters.

private String httpServletRequestToString(HttpServletRequest request) {    StringBuilder sb = new StringBuilder();    sb.append("Request Method = [" + request.getMethod() + "], ");    sb.append("Request URL Path = [" + request.getRequestURL() + "], ");    String headers =        Collections.list(request.getHeaderNames()).stream()            .map(headerName -> headerName + " : " + Collections.list(request.getHeaders(headerName)) )            .collect(Collectors.joining(", "));    if (headers.isEmpty()) {        sb.append("Request headers: NONE,");    } else {        sb.append("Request headers: ["+headers+"],");    }    String parameters =        Collections.list(request.getParameterNames()).stream()            .map(p -> p + " : " + Arrays.asList( request.getParameterValues(p)) )            .collect(Collectors.joining(", "));                 if (parameters.isEmpty()) {        sb.append("Request parameters: NONE.");    } else {        sb.append("Request parameters: [" + parameters + "].");    }    return sb.toString();}


In case someone also want to dump response like me. i avoided to dump response body. following code just dump the StatusCode and Headers.

static private String dumpResponse(HttpServletResponse resp){    StringBuilder sb = new StringBuilder();    sb.append("Response Status = [" + resp.getStatus() + "], ");    String headers = resp.getHeaderNames().stream()                    .map(headerName -> headerName + " : " + resp.getHeaders(headerName) )                    .collect(Collectors.joining(", "));    if (headers.isEmpty()) {        sb.append("Response headers: NONE,");    } else {        sb.append("Response headers: "+headers+",");    }    return sb.toString();}