Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)處理
Feign遠(yuǎn)程調(diào)用Multipartfile參數(shù)
今天在寫業(yè)務(wù)代碼的時(shí)候遇到的問題, 前端請(qǐng)求A服務(wù),能正確把參數(shù)給到A服務(wù)<參數(shù)里面包括文件類型的 Multipartfile>,但是當(dāng)A服務(wù)調(diào)用B服務(wù)時(shí)把文件參數(shù)丟過去,那邊接收不到,并且會(huì)報(bào)Multipartfile 參數(shù)錯(cuò)誤。
在網(wǎng)上找到了答案,特此記錄一下:
解決方案
必須的
在你的fegin 服務(wù)接口暴露的地方新建一個(gè)配置類。
package com.gobon.gbjk.file.api.config; import feign.form.spring.SpringFormEncoder; import org.springframework.beans.factory.ObjectFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.http.HttpMessageConverters; import org.springframework.cloud.openfeign.support.SpringEncoder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** ?* <p> ?* feign配置類 ?* </p> ?* ?* @projectName: gbjk-user ?* @package: com.gobon.gbjk.file.api.config ?* @className: FeignSupportConfig ?* @author: wen jun tang ?* @date: 2021年12月21日 12:25 ?* @version: 1.0 ?*/ @Configuration public class FeignSupportConfig { ? ? @Autowired ? ? private ObjectFactory<HttpMessageConverters> messageConverters; ? ? @Bean ? ? public SpringFormEncoder feignFormEncoder() { ? ? ? ? return new SpringFormEncoder(new SpringEncoder(messageConverters)); ? ? } }
然后你的接口 文件參數(shù)用@RequestPart修飾:
@PostMapping(value = "/file/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) AjaxResult upload(@RequestPart("file") MultipartFile file, @RequestParam("bucketName") String bucketName);
再次調(diào)用, 完美解決!
Feign遠(yuǎn)程調(diào)用傳參問題
如果是簡(jiǎn)單參數(shù),用@RequestParam或者@PathVariable注解
如果是對(duì)象參數(shù),用@RequestBody注解
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Feign遠(yuǎn)程調(diào)用傳遞對(duì)象參數(shù)并返回自定義分頁數(shù)據(jù)的過程解析
- feign遠(yuǎn)程調(diào)用無法傳遞對(duì)象屬性405的問題
- Feign遠(yuǎn)程調(diào)用參數(shù)里面內(nèi)容丟失的解決方案
- 使用Feign遠(yuǎn)程調(diào)用時(shí),序列化對(duì)象失敗的解決
- spring cloud feign實(shí)現(xiàn)遠(yuǎn)程調(diào)用服務(wù)傳輸文件的方法
- 解決在微服務(wù)環(huán)境下遠(yuǎn)程調(diào)用feign和異步線程存在請(qǐng)求數(shù)據(jù)丟失問題
相關(guān)文章
將InputStream轉(zhuǎn)化為base64的實(shí)例
這篇文章主要介紹了將InputStream轉(zhuǎn)化為base64的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12Java?中很好用的數(shù)據(jù)結(jié)構(gòu)EnumSet
這篇文章主要介紹了Java?中很好用的數(shù)據(jù)結(jié)構(gòu)EnumSet,EnumMap即屬于一個(gè)Map,下文圍繞主題展開詳細(xì)內(nèi)容,需要的小伙伴可以參考參考一下2022-05-05Java線程中的Thread.yield()詳細(xì)解析
這篇文章主要介紹了Java線程中的Thread.yield()詳細(xì)解析,yield()讓當(dāng)前線程從運(yùn)行狀態(tài)?轉(zhuǎn)為?就緒狀態(tài),以允許具有相同優(yōu)先級(jí)的其他線程獲得運(yùn)行機(jī)會(huì),需要的朋友可以參考下2023-11-11