2008-10-27 2 views
6

Как мне вызвать URL-адрес для обработки результатов?Получение файла из http-запроса в java

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

UPDATE: Я ищу, чтобы получить файл обратно с URL-адреса (будь то PDF или html и т. Д.).

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

ответ

7
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(); 
    } 
} 

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

+0

Привет, Альберт, спасибо за это - сейчас я попробую. – RodeoClown 2008-10-27 00:35:28

1

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

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

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

+0

Спасибо Винсент. Не похоже, что это вполне удовлетворит то, что я ищу - я не хочу включать что-либо в ответ. В этом случае ответа нет (это запланированная задача, которая выполняется исключительно на стороне сервера). – RodeoClown 2008-10-27 00:31:33

Смежные вопросы