From 982611299e66933b9f4dd1c93002b87cef0707f4 Mon Sep 17 00:00:00 2001 From: ulrich Date: Mon, 11 Nov 2024 13:08:34 +0000 Subject: [PATCH] Pruefung auf HTTP-Methode in Handler aufgenommen --- src/de/uhilger/neon/Handler.java | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/de/uhilger/neon/Handler.java b/src/de/uhilger/neon/Handler.java index cf73907..14d34d3 100644 --- a/src/de/uhilger/neon/Handler.java +++ b/src/de/uhilger/neon/Handler.java @@ -154,25 +154,25 @@ o = ((Map) md).get(routeRest); if (o instanceof ActionDescriptor) { found = true; - handleRequest(exchange, o, routeRest, route.substring(routeRest.length())); + handleRequest(exchange, o, routeRest, route.substring(routeRest.length()), requestMethod); } pos = routeRest.lastIndexOf("/"); } } else { found = true; - handleRequest(exchange, o, route, route); + handleRequest(exchange, o, route, route, requestMethod); } if (!found) { o = dispatcher.get(requestMethod).get("/"); if (o instanceof ActionDescriptor) { - handleRequest(exchange, o, route, route); + handleRequest(exchange, o, route, route, requestMethod); } } } } - private void handleRequest(HttpExchange exchange, Object o, String route, String subroute) throws IOException { + private void handleRequest(HttpExchange exchange, Object o, String route, String subroute, Type requestMethod) throws IOException { ActionDescriptor ad = (ActionDescriptor) o; String actorClassName = ad.className; try { @@ -181,7 +181,7 @@ for (Method method : methods) { Action action = method.getAnnotation(Action.class); if (action != null) { - if (action.route().equals("/") || action.route().startsWith(route)) { + if ((action.route().equals("/") || action.route().startsWith(route)) && action.type().equals(requestMethod)) { Object[] actionArgs = getActionArgs(exchange, method, ad, subroute); Object actorObj = actorClass.getDeclaredConstructor().newInstance(); addDataProvider(exchange, actorObj); @@ -215,8 +215,8 @@ Wenn einer dieser beiden Faelle eintritt, wird alles als Parameter an die Methode uebergeben, was eventuell als Teil einer Query im URL oder im Body enthalten ist. - Ein Actor kann dann den Body nicht mehr lesen, weil das bereits an dieser Stelle - gemacht wurde. + Fuer Mthoden, die nicht vom Typ HTTP GET sind, kann ein Actor kann dann den Body + nicht mehr lesen, weil das bereits an dieser Stelle gemacht wurde. */ Map queryParams = new HashMap(); if ((count > 1 && count > routeParams.length) -- Gitblit v1.9.3