Java HTTP сервер
Никак не могу сделать HTTP сервер на Java. Мне нужно чтобы сервер мог слушать порт и разные пути, например:
localhost:4040/test
localhost:4040/send
localhost:4040/a/b/c
Чтобы я мог обрабатывать как GET так и POST запросы. И как получить русские символы из InputStream в котором храниться тело POST запроса И также сервер должен быть многопоточный. Я нахожу только что-то одно в решениях, только многопоточность, только GET запросы. Можно пример кодом, или репозиторием, как все это сделать?
Ответы (1 шт):
Разбейте свою задачу на несколько более мелких. И решайте их постепенно. Вначале создайте веб сервер, который сможет хоть как то ответить hello-world. Посмотрите пример здесь, например - https://stackoverflow.com/questions/3732109/simple-http-server-in-java-using-only-java-se-api или здесь Как реализовать обработку http запросов get/post/put/delete с использованием com.sun.net.httpserver.HttpServer?
Там есть как возможность использовать встроенный, так и различные сторонние библиотеки.
И как получить русские символы из InputStream в котором храниться тело POST запроса
А здесь у Вас сломано понимание. Нет никаких особых русских символов. Есть байты (то, как оно хранится) и кодировки - правила, которые преобразовывают эти байты в символы и шрифты, которые их уже отрисовывают (грубо конечно, но думаю, будет чуточку понятнее). А вот понятны ли они пользователю будут - это совсем другой вопрос. Если отправляющая сторона корректно закодирует, а принимающая корректно раскодирует, то все будет работать. Если сомневаетесь, используйте везде utf-8. А InputStream в принципе абсолютно побоку, какие байтики передавать. То есть, если в файл можете сохранить, что бы потом в текстовом редакторе открыть и оно работает, то все будут работать.
И также сервер должен быть многопоточный
для начинающих это абсолютно не важно. Сервер может и на одном потоке аккуратно разруливать все Ваши запросы.