Получение файла из http-запроса на java

Как мне вызвать URL-адрес, чтобы обработать результаты?

У меня есть автономный сервлет отчетов, на который я ссылаюсь для отчетов. Я хочу отправить эти отчеты по электронной почте сейчас, если бы я делал это в браузере, я мог бы просто использовать xhttprequest и обрабатывать результаты - я в основном хочу сделать то же самое на Java, но я не уверен, как это сделать Это.

ОБНОВИТЬ: Я ищу, чтобы вернуть файл по URL-адресу (будь то pdf или html и т. д.).

ОБНОВИТЬ: это будет выполняться исключительно на сервере - нет запроса, запускающего отправку электронной почты, скорее это запланированное электронное письмо.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
7
0
19 793
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ознакомьтесь с классами URL и URLConnection. Вот некоторая документация: http://www.exampledepot.com/egs/java.net/Post.html

Если намерение состоит в том, чтобы запустить другой ресурс во время выполнения вашего сервлета без передачи управления другому ресурсу, вы можете попробовать использовать include (запрос, ответ).

RequestDispatcher dispatcher =
   getServletContext().getRequestDispatcher("/url of other resource");
if (dispatcher != null)
   dispatcher.include(request, response);
} 

Вы можете поместить это в сервлет, и результат другого ресурса будет включен в ваш сервлет.

Обновлено: Поскольку вы хотите получить файл, это решение работает и для этого.

Спасибо, Винсент. Не похоже, что это полностью соответствует тому, что я ищу - я не собираюсь включать что-либо в ответ. В этом случае нет ответа (это запланированная задача, которая выполняется исключительно на стороне сервера).

RodeoClown 27.10.2008 03:31
Ответ принят как подходящий
public byte[] download(URL url) throws IOException {
    URLConnection uc = url.openConnection();
    int len = uc.getContentLength();
    InputStream is = new BufferedInputStream(uc.getInputStream());
    try {
        byte[] data = new byte[len];
        int offset = 0;
        while (offset < len) {
            int read = is.read(data, offset, data.length - offset);
            if (read < 0) {
                break;
            }
          offset += read;
        }
        if (offset < len) {
            throw new IOException(
                String.format("Read %d bytes; expected %d", offset, len));
        }
        return data;
    } finally {
        is.close();
    }
}

Обновлено: очищен код.

Другие вопросы по теме