From be3e36de89ff561369bf11984c5f6c329078843c Mon Sep 17 00:00:00 2001 From: mathias Date: Fri, 1 Oct 2021 23:47:49 +0200 Subject: [PATCH] Created the SimpleHttpHandler --- .../http/handler/SimpleHttpHandler.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/main/java/de/gnmyt/autoresponder/http/handler/SimpleHttpHandler.java diff --git a/src/main/java/de/gnmyt/autoresponder/http/handler/SimpleHttpHandler.java b/src/main/java/de/gnmyt/autoresponder/http/handler/SimpleHttpHandler.java new file mode 100644 index 0000000..8932c3f --- /dev/null +++ b/src/main/java/de/gnmyt/autoresponder/http/handler/SimpleHttpHandler.java @@ -0,0 +1,39 @@ +package de.gnmyt.autoresponder.http.handler; + +import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.HttpHandler; +import de.gnmyt.autoresponder.http.controller.HttpResponseController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; + +public abstract class SimpleHttpHandler implements HttpHandler { + + private static final Logger LOG = LoggerFactory.getLogger(SimpleHttpHandler.class); + + /** + * The execution-method that runs whenever the website has been loaded + * + * @param body The body of the autoresponder-request + * @param controller The created {@link HttpResponseController} to answer the message + * @throws Exception For security reasons there could be an {@link Exception} + */ + public abstract void execute(String body, HttpResponseController controller) throws Exception; + + @Override + public void handle(HttpExchange exchange) throws IOException { + StringBuilder body = new StringBuilder(); + + int i; + while ((i = exchange.getRequestBody().read()) != -1) + body.append((char) i); + + try { + execute(body.toString(), new HttpResponseController(exchange)); + } catch (Exception e) { + LOG.error("Could not execute a request: {}", e.getMessage()); + } + } + +}