| | |
| | | */ |
| | | @Override |
| | | public void handle(HttpExchange exchange) throws IOException { |
| | | HttpHelper hh = new HttpHelper(); |
| | | String route = hh.getRouteString(exchange); |
| | | String route = exchange |
| | | .getRequestURI() |
| | | .getPath() |
| | | .substring(exchange |
| | | .getHttpContext() |
| | | .getPath() |
| | | .length()); |
| | | |
| | | Type requestMethod = Type.valueOf(exchange.getRequestMethod()); |
| | | /* |
| | | Es wird erst geprueft, ob zu einer bestimmten Route |
| | |
| | | Parameter[] methodParams = method.getParameters(); |
| | | Object[] actionArgs = new Object[count]; |
| | | String[] routeParams = subroute.split("/"); |
| | | |
| | | |
| | | /* |
| | | Fall 1: Es sind mehr als ein Parameter zu uebergeben und die Route enthaelt |
| | | weniger Parameter als die Methode erfordert. |
| | | Fall 2: Die Methode erwartet Parameter und der erste Parameter ist nicht |
| | | vom Typ HttpExchange. |
| | | |
| | | 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. |
| | | */ |
| | | Map queryParams = new HashMap(); |
| | | if ((count > 1 && count > routeParams.length) |
| | | || (methodParams.length > 0 && !methodParams[0].getType().equals(HttpExchange.class))) { |
| | | queryParams = new HttpHelper().getQueryMap(exchange); |
| | | } |
| | | |
| | | int k = 0; |
| | | for (Parameter methodParam : methodParams) { |
| | | if (methodParam.getType().equals(HttpExchange.class)) { |