public void handle(HttpExchange exchange) throws IOException {
            System.out.println();
            System.out.println("Connection Made");
            String requestMethod = exchange.getRequestMethod();
                               if (requestMethod.equalsIgnoreCase("POST")) {

                        // Prepare the response
                        JSONRPC2Response jsonrpc2Response;

                        Headers requestHeaders = exchange.getRequestHeaders();
                        if (examineHeaders(requestHeaders)) {
                            // Headers seems ok. Continue

                            int bodyLength = Integer.parseInt(requestHeaders.getFirst(Constants.Http.CONTENT_LENGTH));
                            byte[] jsonBytes = new byte[bodyLength];
                            // Start reading the body
                            InputStream requestBody = exchange.getRequestBody();
                            requestBody.read(jsonBytes, 0, bodyLength);
                            String jsonString = new String(jsonBytes);

                            System.out.println("Request: " + jsonString);

                    // Parse the jsonString and get the response to send back
                    jsonrpc2Response = parseReceivedString(jsonString);
                    requestBody.close();

                } else {
                    // We have some error with the header, send back a error and skip the actual message
                    jsonrpc2Response = new JSONRPC2Response(JSONRPC2Error.INVALID_REQUEST.appendMessage(Constants.Errors.BAD_HEADERS), null);
                }

                if (jsonrpc2Response != null) {
                    // This means it was a request and not a response/notifcation
                    //TODO: Should maybe be decided in the header instead of the body...
                    System.out.println("Response: " + jsonrpc2Response.toString());
                    // Set the content-type, important!
                    Headers responseHeaders = exchange.getResponseHeaders();
                    responseHeaders.set("Content-Type", "text/plain");

                    // Write the body and send it
                    OutputStream responseBody = exchange.getResponseBody();
                    exchange.sendResponseHeaders(200, jsonrpc2Response.toJSONString().length());
                    responseBody.write(jsonrpc2Response.toJSONString().getBytes());
                    responseBody.close();
                    System.out.println("Response sent");
                }
            }
        }