diff --git a/src/main/java/org/asamk/signal/commands/JsonRpcNamespace.java b/src/main/java/org/asamk/signal/commands/JsonRpcNamespace.java index f04054da..8f606897 100644 --- a/src/main/java/org/asamk/signal/commands/JsonRpcNamespace.java +++ b/src/main/java/org/asamk/signal/commands/JsonRpcNamespace.java @@ -10,7 +10,7 @@ import java.util.Map; /** * Namespace implementation, that has plural handling for list arguments and converts camel case keys to dashed strings */ -final public class JsonRpcNamespace extends Namespace { +final class JsonRpcNamespace extends Namespace { public JsonRpcNamespace(final Map attrs) { super(attrs); diff --git a/src/main/java/org/asamk/signal/http/HttpServerException.java b/src/main/java/org/asamk/signal/http/HttpServerException.java deleted file mode 100644 index 0f5238e0..00000000 --- a/src/main/java/org/asamk/signal/http/HttpServerException.java +++ /dev/null @@ -1,14 +0,0 @@ -package org.asamk.signal.http; - -public class HttpServerException extends RuntimeException { - - private int httpStatus; - - public HttpServerException(final int aHttpStatus, final String message) { - super(message); - } - - public int getHttpStatus() { - return httpStatus; - } -} diff --git a/src/main/java/org/asamk/signal/http/HttpServerHandler.java b/src/main/java/org/asamk/signal/http/HttpServerHandler.java index d5b120b0..d68a18e9 100644 --- a/src/main/java/org/asamk/signal/http/HttpServerHandler.java +++ b/src/main/java/org/asamk/signal/http/HttpServerHandler.java @@ -54,10 +54,11 @@ public class HttpServerHandler { server.createContext("/api/v1/rpc", httpExchange -> { + if (!"POST".equals(httpExchange.getRequestMethod())) { + sendResponse(405, null, httpExchange); + } + try { - if (!"POST".equals(httpExchange.getRequestMethod())) { - throw new HttpServerException(405, "Method not supported."); - } final SignalJsonRpcCommandHandler commandHandler; @@ -87,12 +88,6 @@ public class HttpServerHandler { } } - catch (HttpServerException aEx) { - logger.error("Failed to process request.", aEx); - sendResponse(aEx.getHttpStatus(), JsonRpcResponse.forError( - new JsonRpcResponse.Error(JsonRpcResponse.Error.INVALID_REQUEST, - aEx.getMessage(), null), null), httpExchange); - } catch (Throwable aEx) { logger.error("Failed to process request.", aEx); sendResponse(200, JsonRpcResponse.forError( @@ -112,7 +107,10 @@ public class HttpServerHandler { private void sendResponse(int status, Object response, HttpExchange httpExchange) throws IOException { if (response != null) { final var byteResponse = objectMapper.writeValueAsBytes(response); + + httpExchange.getResponseHeaders().add("Content-Type", "application/json"); httpExchange.sendResponseHeaders(status, byteResponse.length); + httpExchange.getResponseBody().write(byteResponse); } else { httpExchange.sendResponseHeaders(status, 0); diff --git a/src/main/java/org/asamk/signal/http/HttpSimpleResponse.java b/src/main/java/org/asamk/signal/http/HttpSimpleResponse.java deleted file mode 100644 index d2b22057..00000000 --- a/src/main/java/org/asamk/signal/http/HttpSimpleResponse.java +++ /dev/null @@ -1,3 +0,0 @@ -package org.asamk.signal.http; - -public record HttpSimpleResponse(String status) {}