java?http請(qǐng)求獲取圖片并返回文件流給前端的方法步驟
需求 :
在Spring Boot項(xiàng)目中實(shí)現(xiàn)獲取外部HTTP地址的圖片,并返回文件流給前端
一:依賴(lài)
<!--web 模塊--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
二:配置類(lèi)
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration public class RestTemplateConfig { @Bean(name = "restTemplateJQSJ") public RestTemplate restTemplate(){ return new RestTemplate(); } }
三:服務(wù)實(shí)現(xiàn)類(lèi)
import org.springframework.http.*; import org.springframework.web.bind.annotation.*; import org.springframework.web.client.*; import javax.servlet.http.HttpServletResponse; import java.io.*; @RestController @RequestMapping("/api") public class ImageController { @Autowired @Qualifier("restTemplateJQSJ") private RestTemplate restTemplate; @GetMapping("/image") public void getImage(HttpServletResponse response) throws IOException { String imageUrl = "http://獲取圖片的地址"; // 設(shè)置HTTP頭部信息 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.IMAGE_JPEG); // 假設(shè)圖片類(lèi)型為JPEG,根據(jù)實(shí)際情況調(diào)整 // 發(fā)送HTTP請(qǐng)求獲取圖片數(shù)據(jù)流 ResponseEntity<byte[]> imageResponse = restTemplate.exchange(imageUrl, HttpMethod.GET, new HttpEntity<>(headers), byte[].class); // 將圖片數(shù)據(jù)流寫(xiě)入響應(yīng)輸出流 if (imageResponse.getStatusCode() == HttpStatus.OK && imageResponse.getBody() != null) { response.setContentType(MediaType.IMAGE_JPEG_VALUE); // 設(shè)置響應(yīng)內(nèi)容類(lèi)型 response.getOutputStream().write(imageResponse.getBody()); // 將圖片數(shù)據(jù)寫(xiě)入響應(yīng)輸出流 } else { response.setStatus(HttpStatus.NOT_FOUND.value()); // 處理請(qǐng)求失敗的情況 } } }
可以用Postman測(cè)試一下效果:
總結(jié)
到此這篇關(guān)于java http請(qǐng)求獲取圖片并返回文件流給前端的文章就介紹到這了,更多相關(guān)java http請(qǐng)求獲取圖片返回文件流內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java Spring使用hutool的HttpRequest發(fā)送請(qǐng)求的幾種方式
- java中的常見(jiàn)幾種發(fā)送http請(qǐng)求實(shí)例
- java中調(diào)用https請(qǐng)求忽略ssl證書(shū)認(rèn)證代碼示例
- java實(shí)現(xiàn)調(diào)用http請(qǐng)求的五種常見(jiàn)方式
- Java中如何模擬HTTP請(qǐng)求并驗(yàn)證功能
- Java如何基于okhttp請(qǐng)求SSE接口流式返回詳解
- Java實(shí)現(xiàn)HttpGet請(qǐng)求傳body參數(shù)
- Java如何使用SSLContext請(qǐng)求https鏈接
- java的http請(qǐng)求工具對(duì)比分析
相關(guān)文章
Java Collection和Collections的區(qū)別
本文主要介紹了Java Collection和Collections的區(qū)別,Collection?是表示集合的接口,而?Collections?是對(duì)集合進(jìn)行操作的工具類(lèi),下面就來(lái)介紹一下具體用法,感興趣的可以了解一下2023-12-12mybatis打印SQL,并顯示參數(shù)的實(shí)例
這篇文章主要介紹了mybatis打印SQL,并顯示參數(shù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12Java給實(shí)體每一個(gè)字段賦默認(rèn)值詳細(xì)代碼示例
這篇文章主要給大家介紹了關(guān)于Java給實(shí)體每一個(gè)字段賦默認(rèn)值的相關(guān)資料,在編程過(guò)程中有時(shí)會(huì)出現(xiàn)這樣一種情況,在查詢(xún)無(wú)結(jié)果時(shí)我們需要給實(shí)體賦默認(rèn)值,需要的朋友可以參考下2023-09-09Spring?Boot?2.6.x整合Swagger啟動(dòng)失敗報(bào)錯(cuò)問(wèn)題的完美解決辦法
這篇文章主要給大家介紹了關(guān)于Spring?Boot?2.6.x整合Swagger啟動(dòng)失敗報(bào)錯(cuò)問(wèn)題的完美解決辦法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03Java IO流對(duì)象的序列化和反序列化實(shí)例詳解
這篇文章主要介紹了Java IO流對(duì)象的序列化和反序列化實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05使用Springboot+poi上傳并處理百萬(wàn)級(jí)數(shù)據(jù)EXCEL
這篇文章主要介紹了使用Springboot+poi上傳并處理百萬(wàn)級(jí)數(shù)據(jù)EXCEL,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12