2013-04-04 1 views
0

У меня есть один обработчик запросов, который возвращает страницу jsp с типом содержимого «application/vnd.ms-excel» id.Использование Http-клиента для запроса, который возвращает страницу jsp с типом контента «application/vnd.ms-excel»

У меня есть еще один контроллер, в котором я назвал выше контроллера с помощью HttpClient, но я не в состоянии загрузить файл

код выглядит следующим образом:

контроллер, который возвращает Jsp файл, который имеет первенствовать тип, содержание

@RequestMapping(value = {"InvoiceGeneration/generatePDF"}, method=RequestMethod.GET) 
       public String generatePDF(Model model) 
       { 

       } 

контроллер, который вызывает выше контроллера с помощью HTTP Client

@RequestMapping(value = {"InvoiceGeneration/generateMonthPDF"}, method=RequestMethod.GET) 
        @ResponseBody 
       public HttpEntity generateMonthPDF(Model model){ 


         DefaultHttpClient httpClient = new DefaultHttpClient(); 
         HttpGet getRequest = new HttpGet("http://localhost:8080/BillingInvoice/InvoiceGeneration/generatePDF?invoiceNumber=10"); 
         getRequest.addHeader("Content-Type", "application/vnd.ms-excel"); 
         getRequest.addHeader("Content-Disposition","attachment; filename=\""+"kedar.xls"+"\""); 

          HttpResponse response = httpClient.execute(getRequest); 

         return response.getEntity(); 

        } 

Как получить ответ как файл с файлом excel ???? Заранее спасибо

+0

Веб-сервис вы звоните генерирует PDF? Невозможно магически преобразовать это в файл Excel. Ваш вопрос не совсем ясен. –

+0

Я не уверен, если это имеет значение, но вы, вероятно, не хотите, чтобы '@ ResponseBody' в' generateMonthPDF'. Кроме того, вы, кажется, добавляете «Content-Type» и «Content-Disposition» к запросу, а не в ответ, генерирующий PDF-файл. – NilsH

+0

Кроме того, нет необходимости возвращать HttpEntity из Apache HTTP Client. Вы должны получить массив исходных байтов (или входной поток). – NilsH

ответ

0

должны установить следующее ответ

  response.setContentType("application/octet-stream"); 
     or 
     response.setContentType("application/vnd.ms-excel"); 

     response.setHeader("Content-disposition", "inline;filename=" + fileName); 
Смежные вопросы