From 630b44fd74991e2757b2870eb76abbf3ad0f616f Mon Sep 17 00:00:00 2001
From: ulrich
Date: Sun, 11 Apr 2021 15:33:33 +0000
Subject: [PATCH] Sonderzeichen

---
 src/de/uhilger/mediaz/api/AbstractHandler.java |   44 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/src/de/uhilger/mediaz/api/AbstractHandler.java b/src/de/uhilger/mediaz/api/AbstractHandler.java
index 038b647..af0ba5b 100644
--- a/src/de/uhilger/mediaz/api/AbstractHandler.java
+++ b/src/de/uhilger/mediaz/api/AbstractHandler.java
@@ -17,6 +17,7 @@
  */
 package de.uhilger.mediaz.api;
 
+import com.sun.net.httpserver.Headers;
 import com.sun.net.httpserver.HttpExchange;
 import com.sun.net.httpserver.HttpHandler;
 import java.io.BufferedReader;
@@ -48,11 +49,19 @@
   /** Name der HTTP Methode DELETE */
   public static final String HTTP_DELETE = "DELETE";
   
+  public static final int RTC_OK = 200;
+  public static final int RTC_NOT_FOUND = 404;
+  
+  protected int returnCode;
+
+  public AbstractHandler() {
+    this.returnCode = RTC_OK;
+  }
+  
   @Override
   public void handle(HttpExchange e) throws IOException {
     String method = e.getRequestMethod();
     String response = "";
-    int code = 200;
     switch(method) {
       case HTTP_GET:
         String json = get(e);
@@ -60,7 +69,7 @@
           response = json;
         } else {
           response = "nicht gefunden";
-          code = 404;
+          returnCode = RTC_NOT_FOUND;
         }
         break;
         
@@ -70,7 +79,6 @@
         
       case HTTP_POST:
         response = post(e);
-        code = 404;
         break;
         
       case HTTP_DELETE:
@@ -82,10 +90,21 @@
         }
         break;
     }
-    e.sendResponseHeaders(code, response.length());
+    logger.fine(response);
+    Headers headers = e.getResponseHeaders();
+    headers.add("Content-Type", "application/json");
+    e.sendResponseHeaders(getReturnCode(), response.length());
     OutputStream os = e.getResponseBody();
     os.write(response.getBytes());
     os.close();        
+  }
+  
+  protected void setReturnCode(int code) {
+    this.returnCode = code;
+  }
+  
+  protected int getReturnCode() {
+    return returnCode;
   }
   
   protected String bodyLesen(HttpExchange e) throws IOException {
@@ -102,10 +121,27 @@
     return json;
   }
 
+  protected String put(HttpExchange e) throws IOException {
+    setReturnCode(RTC_NOT_FOUND);
+    return "nicht unterstuetzt";
+  }
+
+  protected String post(HttpExchange e) {
+    setReturnCode(RTC_NOT_FOUND);
+    return "nicht unterstuetzt";
+  }
+
+  protected boolean delete(HttpExchange e) {
+    setReturnCode(RTC_NOT_FOUND);
+    return false;
+  }
+  
   
   protected abstract String get(HttpExchange e);
+  /*
   protected abstract String put(HttpExchange e) throws IOException;
   protected abstract String post(HttpExchange e);
   protected abstract boolean delete(HttpExchange e);
+  */
   
 }

--
Gitblit v1.9.3