Получите текст запроса POST [Java]

#java #http #post #networking

#Ява #http #Публикация #сетевой

Вопрос:

Я пытаюсь написать простой HTTP-сервер, но не могу понять, как прочитать основной сегмент POST-запроса. У меня возникли проблемы с чтением дальше пустой строки после заголовков.

Вот что я делаю:

 BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));  StringBuilder request = new StringBuilder();  String line;  while(!(line = br.readLine()).isEmpty()) {  request.append(line).append(CRLF);  System.out.println(line);  }    // read body ?  

Таким образом, это в основном загружает запрос и заголовки в строку. Но я не могу понять, как пропустить ту единственную строку, которая отделяет заголовки от тела.

Я пробовал readLine() != null или вручную прочитать еще две строки после завершения цикла, но это приводит к циклу.

Ответ №1:

Попробуйте проанализировать заголовок длины содержимого, чтобы получить количество байтов. После пустой строки вы захотите прочитать ровно столько байтов. Использование readLine() не будет работать, потому что тело не завершается CRLF.