private HtmlRequest readRequest(Socket socket) throws IOException { BufferedReader requestBufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream())); StringBuilder requestStringBuilder = new StringBuilder(); try { String line = requestBufferedReader.readLine(); while (!line.isEmpty()) { requestStringBuilder.append(line + NEWLINE); line = requestBufferedReader.readLine(); } } catch (IOException e) { System.out.println("An error occured while reading from the socket: " + e.toString()); } if (requestStringBuilder.toString().isEmpty()) { return null; } HtmlRequest htmlRequest = new HtmlRequest(requestStringBuilder.toString()); if (htmlRequest.type.equals("POST") || htmlRequest.type.equals("TRACE")) { htmlRequest.getParametersFromBody(requestBufferedReader); } return htmlRequest; }