From d027b57c66dcdb183683c34101518df1572c1bf8 Mon Sep 17 00:00:00 2001 From: ulrich Date: Mon, 12 Apr 2021 16:53:30 +0000 Subject: [PATCH] Livestreams erste Fassung fertig --- src/de/uhilger/mediaz/api/AbstractHandler.java | 67 ++++++++++++++++++++++++++++----- 1 files changed, 56 insertions(+), 11 deletions(-) diff --git a/src/de/uhilger/mediaz/api/AbstractHandler.java b/src/de/uhilger/mediaz/api/AbstractHandler.java index 55d2ece..2d9b71a 100644 --- a/src/de/uhilger/mediaz/api/AbstractHandler.java +++ b/src/de/uhilger/mediaz/api/AbstractHandler.java @@ -1,11 +1,23 @@ /* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. + Mediazentrale - Personal Media Center + Copyright (C) 2021 Ulrich Hilger + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ package de.uhilger.mediaz.api; -import com.google.gson.Gson; +import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import java.io.BufferedReader; @@ -13,13 +25,13 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; -import java.util.logging.Level; import java.util.logging.Logger; /** * - * @author ulrich + * @author Ulrich Hilger + * @version 1, 8.4.2021 */ public abstract class AbstractHandler extends JsonHelper implements HttpHandler { @@ -37,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); @@ -49,7 +69,7 @@ response = json; } else { response = "nicht gefunden"; - code = 404; + //returnCode = RTC_NOT_FOUND; } break; @@ -59,7 +79,6 @@ case HTTP_POST: response = post(e); - code = 404; break; case HTTP_DELETE: @@ -72,10 +91,20 @@ break; } logger.fine(response); - e.sendResponseHeaders(code, response.length()); + 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 { @@ -89,14 +118,30 @@ } r.close(); String json = sb.toString(); - logger.log(Level.FINE, "json: {0}", json); 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