Простой ответ на ваш вопрос:
try {
for (int eight = 0; eight < 8; eight++) {
message = in.readLine();
if (message.contains("Content-Length")) {
message.getChars(16, 20, size, 0); THIS LINE
}
}
} catch (StringIndexOutOfBoundsException ex) {
Logger.fatal("I've got a bug in my program", ex);
}
Лучший ответ - вам нужно устранить причину исключений.Могу поспорить, что код, который пытается извлечь длину содержимого, делает неверные предположения о количестве символов в поле «размер» входной строки.Более надежный подход выглядит примерно так:
int pos = message.indexOf("Content-Length ");
if (pos >= 0) {
String size = message.substring(pos + "Content-Length ".length());
}
Очевидно, что это выделяет дополнительную строку, но имеет то преимущество, что ЭТО РАБОТАЕТ.