Я не знаю, связано ли это с вашей проблемой, но похоже, что вы не используете read()
правильно. read()
возвращает -1 в конце ввода и может считывать меньше указанного количества байтов, даже если доступно больше данных. Я бы порекомендовал вместо этого использовать
while ((bytesRead = inputStream.read(buffer, 0, buffer.length)) != -1) {
resp.getOutputStream().write(buffer, 0, bytesRead);
}
Ваш исходный код рискует прервать цикл чтения до окончания данных или вызвать write()
с bytesRead
, установленным в -1. Кроме того, переменная offset
в вашем исходном коде кажется ненужной; смещение всегда должно быть 0, так как вы пытаетесь заполнить весь буфер.