В настоящее время я создаю небольшой веб-сервер (для целей тестирования), и у меня возникает проблема с чтением заголовка HTTP-запроса (из браузера, в моем случае - с хромом).
Сначала я просто попробовал что-то вроде этого:
BufferedReader in = new BufferedReader(
new InputStreamReader(client_socket.getInputStream(), "UTF-8")
);
StringBuilder builder = new StringBuilder();
while (in.ready()){
builder.append(in.readLine());
}
return builder.toString();
Это работало нормально для первого запроса. Однако после того, как был выполнен первый запрос, ready()
-метод возвратил только false
(я закрыл client_socket
, как и все читатели / писатели).
После небольшого поиска я наткнулся на этот старый вопрос: Чтение / преобразование InputStream в строку
Я попробовал первые четыре решения (два с Apache Commons, одно с Scanner
и одно с циклом do-while). Все они заблокированы навсегда, и браузер выдал мне ошибку «Веб-сайт недоступен».
Я бы хотел сделать это самостоятельно (без использования каких-либо библиотек или встроенных серверов), поэтому я даже стараюсь.
Я сейчас немного растерян, как бы вы поступили?