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 | 65 ++++++++++++++++++++++++++++---- 1 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/de/uhilger/mediaz/api/AbstractHandler.java b/src/de/uhilger/mediaz/api/AbstractHandler.java index 45befae..2d9b71a 100644 --- a/src/de/uhilger/mediaz/api/AbstractHandler.java +++ b/src/de/uhilger/mediaz/api/AbstractHandler.java @@ -1,10 +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.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import com.sun.net.httpserver.HttpHandler; import java.io.BufferedReader; @@ -17,7 +30,8 @@ /** * - * @author ulrich + * @author Ulrich Hilger + * @version 1, 8.4.2021 */ public abstract class AbstractHandler extends JsonHelper implements HttpHandler { @@ -35,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); @@ -47,7 +69,7 @@ response = json; } else { response = "nicht gefunden"; - code = 404; + //returnCode = RTC_NOT_FOUND; } break; @@ -57,7 +79,6 @@ case HTTP_POST: response = post(e); - code = 404; break; case HTTP_DELETE: @@ -69,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 { @@ -89,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