Мое наблюдение заключается в том, что пользовательские заголовки и тип содержимого теряются при добавлении двоичных данных в ответ.
Например, это работает как ожидалось:
private void teapot(HttpServletResponse response) {
response.setHeader("Teapot", "Coffee");
response.setContentType("text/plain");
response.setStatus(418);
}
Заголовки ответа (на стороне клиента) выглядят так:
{'Teapot': 'Coffee', 'Content-Type': 'text/plain', 'X-Cloud-Trace-Context': 'NNNN', 'Date': 'Sun, 28 Oct 2018 19:29:05 GMT', 'Server': 'Google Frontend', 'Content-Length': '0'}
Когда я добавляю двоичные данные, как это:
IOUtils.copy(inputstream, response.getOutputStream());
Получены следующие заголовки:
{'X-Cloud-Trace-Context': 'NNNN', 'Date': 'Sun, 28 Oct 2018 19:29:11 GMT', 'Content-Type': 'text/html', 'Server': 'Google Frontend', 'Content-Length': '1336799'}
Ни один из заголовков или типов содержимого не соответствует указанному мною.
Как мне этого избежать?