Получение файла из HTTP-запроса в Java - PullRequest
6 голосов
/ 27 октября 2008

Как мне вызвать URL для обработки результатов?

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

ОБНОВЛЕНИЕ : Я хочу получить файл обратно с URL (будь то PDF или HTML и т. Д.).

ОБНОВЛЕНИЕ : Это будет выполняться исключительно на сервере - нет запроса, который инициирует отправку электронной почты, скорее это запланированная электронная почта.

Ответы [ 3 ]

7 голосов
/ 27 октября 2008
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();
    }
}

Редактировать: Очистить код.

1 голос
/ 27 октября 2008

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

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

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

РЕДАКТИРОВАТЬ: так как вы хотите получить файл обратно, то это решение работает и для этого.

1 голос
/ 27 октября 2008

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

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