<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                消費端要調用服務端的導出接口,可以采用如下兩種方式。下面演示消費端模塊 cloud-comsumer-feign-order80 調用服務端模塊 cloud-provider-payment8001 的導出功能。 [TOC] # 1. feign接口返回byte[] 步驟如下: **1. 服務端的導出接口** ```java @RestController @RequestMapping("/order") public class OrderController { @GetMapping("/export/order") public void exportOrder(HttpServletResponse response) throws IOException { File file = new File("e:/upload/excel/poi/write/001.xlsx"); InputStream input = new FileInputStream(file); byte[] content = new byte[(int) file.length()]; input.read(content); String fileName = "order20211115.xlsx"; response.setContentType("application/msexcel;charset=utf-8"); //解決文件名中文亂碼問題 fileName = URLEncoder.encode(fileName, "GB2312"); fileName = URLDecoder.decode(fileName, "ISO8859_1"); response.setHeader("content-disposition", "attachment; filename=" + fileName); OutputStream os = response.getOutputStream(); os.write(content); os.close(); } } ``` **2. feign接口返回`byte[]`** ```java @Component @FeignClient(value = "${provider.payment.name}") public interface OrderFeignService { /** * 注意:方法返回的是 byte[],不是與服務端返回一樣的 void */ @RequestMapping("/order/export/order") byte[] exportOrder(); } ``` **3. 消費端的controller層** ```java @RestController @RequestMapping("/order") public class OrderFeignController { @GetMapping("/export/order") public void exportOrder(HttpServletResponse response) throws IOException { //雖然在服務端設置了response相關,但是在消費端依然需要重新設置response String fileName = "order20211115.xlsx"; response.setContentType("application/msexcel;charset=utf-8"); fileName = URLEncoder.encode(fileName, "GB2312"); fileName = URLDecoder.decode(fileName, "ISO8859_1"); response.setHeader("content-disposition", "attachment; filename=" + fileName); //將exportOrder()方法返回的 byte[] 數組寫入 response 的 OutputSteam 中 response.getOutputStream().write(this.orderFeignService.exportOrder()); } } ``` **4. 訪問消費端的導出接口 http://localhost/order/export/order 即可導出** <br/> # 2. feign接口返回擁有`byte[]`類型屬性的實體類 步驟如下: **1. 在公共模塊封裝含有`byte[]`類型屬性的實體類** ```java @Data public class ExportData { private String name; private byte[] content; } ``` **2. 服務端導出接口返回ExportData** ```java @RestController @RequestMapping("/order") public class OrderController { @GetMapping("/export/order2") public ExportData exportOrder2() throws IOException { ExportData exportData = new ExportData(); exportData.setName("001.xlsx"); File file = new File("e:/upload/excel/poi/write/001.xlsx"); InputStream input = new FileInputStream(file); byte[] content = new byte[(int) file.length()]; input.read(content); exportData.setContent(content); return exportData; } } ``` **3. feign接口返回ExportData** ```java @Component @FeignClient(value = "${provider.payment.name}") public interface OrderFeignService { @RequestMapping("/order/export/order2") ExportData exportOrder2(); } ``` **4. 消費端的controller層取出`byte[]`數據即可** ```java @RestController @RequestMapping("/order") public class OrderFeignController { @Autowired private OrderFeignService orderFeignService; @GetMapping("/export/order2") public void exportOrder2(HttpServletResponse response) throws IOException { ExportData data = this.orderFeignService.exportOrder2(); String fileName = data.getName(); response.setContentType("application/msexcel;charset=utf-8"); fileName = URLEncoder.encode(fileName, "GB2312"); fileName = URLDecoder.decode(fileName, "ISO8859_1"); response.setHeader("content-disposition", "attachment; filename=" + fileName); //取出byte[] response.getOutputStream().write(data.getContent()); } } ``` **5. 訪問消費端的導出接口 http://localhost/order/export/order2 即可導出**
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看