Как симулировать испорченное приложение / поток октетов, используя Java - PullRequest
0 голосов
/ 05 июня 2019

У меня есть веб-приложение на Java, которое создаст страницу http со ссылкой для загрузки файла. Когда ссылка нажата, она переходит к API, и API отправляет HttpResponse response, а ответ contentType равен

resp.setContentType("application/octet-stream");
resp.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");

Затем браузер сохранит файл в каталоге загрузок операционной системы.

Теперь, если файл отсутствует или поврежден, как мы можем программно выполнить загрузку в браузере? Есть какой-то заголовок, который я должен использовать?

Обратите внимание, что у меня есть возможность до начала потока узнать, отсутствует ли файл, но я должен работать в рамках html-гиперссылки.

Ответы [ 2 ]

1 голос
/ 05 июня 2019

У вас есть несколько вариантов отображения ошибок, например:

  1. просто введите код ошибки HTTP
  2. перенаправить пользователя на некоторую (существующую) страницу с ошибкой (и не устанавливать contentType)

Я бы предпочел второй.

Я думаю, что вы используете HttpServletResponse, а не HttpResponse (я могу ошибаться). Если это так, вы можете перенаправить пользователя с помощью метода sendRedirect().

1 голос
/ 05 июня 2019

Если файл отсутствует, об этом следует сообщить клиенту, используя HTTP-статус 404 (не найден).

resp.setStatus(HttpServletResponse.SC_NOT_FOUND); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...