日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

關于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服務傳輸的問題

瀏覽:242日期:2023-03-29 10:31:14

大家好,因為近期做需求中遇到了文件上傳這個東西,而且我這個還是跨服務去傳輸文件的所以我這邊使用了httpclient和RestTemplate去做,但是最后還是用的httpclient。feign和RestTemplate在超大文件下會OOM所以適用于小文件傳輸我這邊測試的在1G以下。httpclient好像是無限哈哈哈。(具體多少大家有時間可以去測一下)

1.被調用服務的Controller

1.這塊使用@RequestParam(“file”)或者@RequestPart(“file”)都是可以接到參數的。2.(“file”)一定要和遠程調用代碼傳的參數名一樣 否則接不到參數。

@RequestMapping(value = '/remoteCallUpload',method = RequestMethod.POST) @ApiOperation('測試遠程調用上傳') public String remoteCallUpload(@RequestParam('file') MultipartFile file){ System.out.println(file); return '成功'; }

1.RestTemplate

1.如果用RestTemplate的話首先需要把RestTemplate交給spring去管理所以先來一個配置類。2.@SuppressWarnings(“all”) 這個注解是jdk自帶的的意思是 意志所有的警告。

@Configuration@SuppressWarnings('all')public class RestTemplateConfig { @Autowired RestTemplateBuilder builder; @Bean public RestTemplate restTemplate() { return builder.build(); }}

2.RestTemplate遠程調用文件傳輸

這里有幾個要注意的地方

1.必須重寫否則傳輸時報錯

ByteArrayResource byteArrayResource = new ByteArrayResource(file.getBytes()) { @Override public String getFilename() {return file.getOriginalFilename(); } };

2.設置請求頭因為就在模擬前端發送上傳文件的請求所以請求頭必須是multipart/form-data

3.第三個參數是被調用Controller的返回值類型,我的測試Controller寫的是String所以我的這邊第三參數就是String.Class

restTemplate.postForObject(url, files, String.class);

4.url就是被調用服務的地址 如:

http://192.168.3.7:50003/test/remoteCallUpload

以上是注意事項。

@Autowiredprivate RestTemplate restTemplate;private String gettestRestTemplate(MultipartFile file, String url) throws IOException { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType('multipart/form-data'); headers.setContentType(type); MultiValueMap<String, Object> form = new LinkedMultiValueMap<>(); ByteArrayResource byteArrayResource = new ByteArrayResource(file.getBytes()) { @Override public String getFilename() {return file.getOriginalFilename(); } }; form.add('file', byteArrayResource); form.add('filename', file.getOriginalFilename()); //用HttpEntity封裝整個請求報文 HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers); String flag = restTemplate.postForObject(url, files, String.class); return flag; }

3.HttpClient

1.使用httpclient的話首先要引入pom文件坐標。

<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpmime</artifactId> <version>4.5.6</version> </dependency>

3.HttpClient遠程調用文件傳輸

1.httpclient這段代碼有要用的小伙伴直接粘過去就能用注意一下返回值自己改一下就行execute.getEntity()

@SneakyThrows private String gettesthttpclient(MultipartFile file, String url) { CloseableHttpClient httpclient = HttpClients.createDefault(); RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(10000).setConnectTimeout(5000).build(); HttpPost httpPost = new HttpPost(url); MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create(); // 解決中文文件名亂碼問題 entityBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); entityBuilder.setCharset(Consts.UTF_8); ContentType contentType = ContentType.create(ContentType.TEXT_PLAIN.getMimeType(), Consts.UTF_8); entityBuilder.addBinaryBody('file', file.getInputStream(), ContentType.DEFAULT_BINARY, file.getOriginalFilename()); httpPost.setEntity(entityBuilder.build()); httpPost.setConfig(requestConfig); HttpResponse execute = httpclient.execute(httpPost); String flag = EntityUtils.toString(execute.getEntity()); return flag; }

總結

遠程調用使用了RestTemplate和httpclient也可以使用feign,但是RestTemplate和feign大文件會OOM,httpclient不會所以大家可以根據自己場景去選擇。

關于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服務傳輸的問題

到此這篇關于關于springboot 中使用httpclient或RestTemplate做MultipartFile文件跨服務傳輸的問題的文章就介紹到這了,更多相關springboot MultipartFile文件跨服務傳輸內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品自拍| av资源新版天堂在线| 久久精品国产999大香线蕉| 中文字幕一区二区三区在线视频| 日本va欧美va精品发布| 91欧美极品| 国产精品成人自拍| 成人在线黄色| 日韩精品欧美激情一区二区| 欧美.日韩.国产.一区.二区 | 日本色综合中文字幕| 日本aⅴ亚洲精品中文乱码 | 欧美成人高清| 一区二区三区四区日韩| 欧美自拍一区| 日本久久精品| 中文另类视频| 日韩欧美2区| 欧美黄色一区| www.51av欧美视频| 亚洲综合电影一区二区三区| 91精品日本| 亚洲成a人片| 日本va欧美va精品发布| 精品五月天堂| 一区二区国产精品| 久久av电影| 国产精品美女久久久| 国产精品mv在线观看| 91久久久精品国产| 日本午夜精品视频在线观看| 欧美精品资源| 国产精品久久久免费| 亚洲免费观看| 一区二区精品伦理...| 日韩精品亚洲专区在线观看| 亚洲a一区二区三区| 久久国产精品色av免费看| 欧美福利一区| 欧美成人a交片免费看| 中文一区在线| 久久男人av资源站| 国产精品一站二站| 深夜福利亚洲| 蜜桃一区二区三区在线观看| 久久精品影视| 精品亚洲成人| 精品国产黄a∨片高清在线| 欧美在线91| 欧美视频二区| 日韩av网站在线观看| 香蕉成人久久| 91久久久久| 在线亚洲观看| 国产模特精品视频久久久久| 国产一区观看| 亚洲激情五月| 久久电影一区| 亚洲资源网站| 国产视频一区二| 欧美亚洲三区| 欧美精品国产| 国产精品第十页| 精品国产精品国产偷麻豆 | 麻豆成人综合网| 欧美成人一二区| 国语精品一区| 久久国产日韩| 亚洲综合不卡| 国产日韩欧美三级| 久久精品av麻豆的观看方式| 日本不卡一二三区黄网| 国产精品入口久久| 超碰超碰人人人人精品| 国产一区日韩欧美| 免费在线观看成人| 国产美女精品视频免费播放软件| 高清久久精品| 亚洲在线网站| 国产丝袜一区| 久久高清精品| 亚洲91网站| 精品久久一区| 亚洲主播在线| 麻豆精品少妇| 激情婷婷综合| 亚洲欧美在线综合| 欧美韩日一区| 亚洲aa在线| 天堂网av成人| 国产日韩1区| 日韩一级精品| 激情不卡一区二区三区视频在线| 日本aⅴ免费视频一区二区三区| 亚洲特级毛片| 国产精品国码视频| 久久国产精品99国产| 99免费精品| 亚洲电影有码| 国产精品主播| 蜜臀久久久久久久| 日韩午夜av| 亚洲不卡视频| 亚洲专区在线| 国产精品成人3p一区二区三区| 日韩avvvv在线播放| 青草av.久久免费一区| 日本一区二区三区视频在线看| 日本视频在线一区| 国产精品777777在线播放| 国产极品一区| 欧美片第1页| 日产精品一区| 久久不射中文字幕| 亚洲欧美日韩国产| 美女网站视频一区| 日韩精品欧美激情一区二区| 久久精品影视| 夜夜嗨一区二区三区| 黄色日韩在线| 亚洲国产日韩欧美在线| 亚洲激情精品| 中文字幕中文字幕精品| 欧美一区影院| 韩国久久久久久| 一区二区自拍| 日韩精品亚洲专区| 国产欧美日韩在线一区二区| 国产精久久久| 欧美国产91| 免费在线观看不卡| 国产精品hd| 91精品啪在线观看国产18 | 久久久成人网| 日韩欧美一区二区三区在线观看| 亚洲精品乱码| 国产精品a级| 婷婷精品进入| 国产欧美日韩亚洲一区二区三区| 亚洲国产专区校园欧美| 亚洲午夜免费| 麻豆久久一区| 久久福利一区| 日本午夜精品视频在线观看| 精品视频亚洲| 精品视频国产| 精品欧美久久| 国产精品久久久久9999高清| 国产激情一区| 亚洲精品一级二级三级| 日韩电影免费网站| 久久香蕉精品香蕉| 亚洲18在线| 首页亚洲欧美制服丝腿| 红桃视频亚洲| 亚洲1234区| 久久网站免费观看| 国产在视频一区二区三区吞精| 人在线成免费视频| 卡一卡二国产精品| 91成人福利| 91久久亚洲| 亚洲作爱视频| 久久av偷拍| 免费成人在线影院| 国产成人久久精品麻豆二区| 亚洲综合日本| 国产一区一一区高清不卡| 亚洲一区欧美激情| 91精品xxx在线观看| 国产精品久久久久av蜜臀| 国产一区白浆| 99精品综合| 成人台湾亚洲精品一区二区 | 国产美女亚洲精品7777| 日韩欧美一区二区三区在线视频| 久久尤物视频| 日本一不卡视频| 另类av一区二区| 99久久久国产精品美女| 欧美国产精品| 国产亚洲电影| 国产精品亚洲欧美一级在线| 久久精品 人人爱| 欧美日本二区| 亚洲精品第一| 日韩免费精品| 国产乱人伦精品一区| 日韩精品91亚洲二区在线观看| 国产三级精品三级在线观看国产| 日韩av在线播放中文字幕| 亚洲毛片视频| 免费美女久久99| 亚洲天堂免费| 亚洲另类视频| 国产日韩欧美一区二区三区在线观看| 精品久久网站| 日韩欧美不卡| 久久国产影院| 极品日韩av|