Я создаю простую серверную программу, которая должна возвращать в ответе изображение и текст, однако у меня проблема с Jetty. Текст должен быть включен в заголовки ответа HTTP, но не должен.
Вот код для возврата изображения:
override fun doPost(request: HttpServletRequest, response: HttpServletResponse) {
response.contentType = "image/png"
response.status = HttpServletResponse.SC_OK
val diff = ImgDiff.getDifference("img1", "img2", tolerance)
//response.writer.println(diff.toString())
ImageIO.write(ImageIO.read(File("diffedFile.png")), "PNG", response.outputStream)
response.addHeader("diff", diff.toString())
}
Это прекрасно работает, однако, заголовок не содержит diff. Когда я использую закомментируйте строку ImageIO и раскомментируйте ту, что над ней, уже закомментированную, и измените тип содержимого на text/plain
diff включен в заголовки.
Заголовки с изображением:
Date: Mon, 13 May 2019 22:03:35 GMT
Content-Type: image/png
Transfer-Encoding: chunked
Server: Jetty(9.4.18.v20190429)
Заголовки без изображения (как описано в последнем случае)
Date: Mon, 13 May 2019 22:10:32 GMT
Content-Type: text/plain;charset=iso-8859-1
diff: 62.62626262626263
Content-Length: 19
Server: Jetty(9.4.18.v20190429)
Что-то не так с Jetty? Могут ли ответные изображения HTTP не содержать изображений? Я понимаю, что могу просто вернуть zip-файл, содержащий изображение и текст, но я думаю, что это немного. Я игнорирую что-то фундаментальное для HTTP-запросов? Пожалуйста, дайте мне знать.