У меня есть сервлет, который по методу POST получает большую строку JSON (> 10 000 символов).Сервер не может прочитать весь контент
Если я прочитал содержание запроса, как это:
try(Reader reader = new InputStreamReader(new BufferedInputStream(request.getInputStream()), StandardCharsets.UTF_8))
{
char[] buffer = new char[request.getContentLength()];
reader.read(buffer);
System.out.println(new String(buffer));
}
Я не получить весь контент! Размер буфера правильный. Но длина созданной строки - нет.
Но если я делаю это так:
try(BufferedInputStream input = new BufferedInputStream(request.getInputStream()))
{
byte[] buffer = new byte[request.getContentLength()];
input.read(buffer);
System.out.println(new String(buffer, StandardCharsets.UTF_8));
}
она прекрасно работает.
Итак, где я ошибаюсь в первом случае?