Сделаем сервер, который отвечает JSON и принимает простой запрос.
Задаём порт и создаём HTTP-сервер:
int port = 8080;
var server = com.sun.net.httpserver.HttpServer.create(
new java.net.InetSocketAddress(port), 0
);
Добавляем эндпоинт
/health, который отдаёт JSON:server.createContext("/health", ex -> {
var json = "{\"status\":\"ok\"}";
ex.getResponseHeaders().add("Content-Type", "application/json; charset=utf-8");
ex.sendResponseHeaders(200, json.getBytes().length);
ex.getResponseBody().write(json.getBytes());
ex.close();
});Добавляем эндпоинт
/echo:server.createContext("/echo", ex -> {
var q = ex.getRequestURI().getQuery(); // msg=hello
var msg = (q != null && q.startsWith("msg=")) ? q.substring(4) : "empty";
var json = "{\"msg\":\"" + msg + "\"}";
ex.getResponseHeaders().add("Content-Type", "application/json; charset=utf-8");
ex.sendResponseHeaders(200, json.getBytes().length);
ex.getResponseBody().write(json.getBytes());
ex.close();
});Запускаем сервер и задаём пул потоков:
server.setExecutor(java.util.concurrent.Executors.newFixedThreadPool(4));
server.start();
System.out.println("Server started on http://localhost:" + port);
🔥 В итоге получаем работающий HTTP-сервер с JSON-эндпоинтами без фреймворков.
👉 Java Ready | #практика