Иногда разработчикам требуется создать очень базовый HTTP-сервер, который поддерживает только методы GET и POST. Java SE API предоставляет удобный инструментарий для работы с HTTP-клиентами, например, HttpURLConnection. Однако, разработчики часто сталкиваются с проблемой при попытке найти аналогичный инструмент для работы с HTTP-серверами.
Примером может служить ситуация, когда вам нужно создать приложение, которое обрабатывает HTTP-запросы от других приложений. При этом вы не хотите заниматься ручной обработкой HTTP-запросов и форматированием HTTP-ответов.
Использование HttpServer из com.sun.net.httpserver
Пакет com.sun.net.httpserver предоставляет базовую функциональность для создания простого HTTP-сервера. Этот пакет является частью Java SE, начиная с версии 6.
Вот пример создания простого HTTP-сервера, который слушает на порту 8000 и отвечает на все GET-запросы простым текстовым сообщением «Hello, World!»:
import com.sun.net.httpserver.HttpServer;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpExchange;
import java.io.OutputStream;
import java.io.IOException;
import java.net.InetSocketAddress;
public class SimpleHttpServer {
public static void main(String[] args) throws Exception {
HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/", new MyHandler());
server.setExecutor(null); // creates a default executor
server.start();
}
static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange t) throws IOException {
String response = "Hello, World!";
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes());
os.close();
}
}
}
Этот сервер поддерживает только GET-запросы. Для поддержки POST-запросов вам нужно будет добавить дополнительную логику в обработчик MyHandler.
Вместо того чтобы ручками обрабатывать HTTP-запросы и форматировать HTTP-ответы, вы можете использовать этот класс для создания простого HTTP-сервера. Однако, обратите внимание на то, что этот класс предоставляет ограниченные возможности и не подходит для создания полноценных веб-приложений.
Перейти в телеграм, чтобы получить результаты теста



Забрать
Добавить комментарий