方案一:使用 @SpringQueryMap 註解
註解爲 spring-cloud-openfeign-core jar包下 org.springframework.cloud.openfeign
@SpringQueryMap 註解在一個方法上只能有一個,多個的話只有一個對象可以獲取到值,其它對象爲空
consumes = MediaType.MULTIPART_FORM_DATA_VALUE 指定以表單(multipart/form-data)形式提交,一般上傳文件需要指定
// 客戶端
/**
* post 上傳文件 同時發送對象
*/
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<?> upload(@RequestPart MultipartFile file, @RequestParam String fileUrl, @SpringQueryMap User user);
/**
* get 發送對象
*/
@GetMapping("test")
Result<?> upload(@RequestParam Long id, @SpringQueryMap User user);
/**
* post 發送多參數
*/
@PostMapping("getBaseWorkMsg")
Result<?> manyParam(@RequestParam Long id, @RequestBody TestModel testModel, @SpringQueryMap User user);
// 服務端
/**
* post 上傳文件 同時發送對象
*/
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result<?> upload(@RequestPart MultipartFile file, @RequestParam String fileUrl, @SpringQueryMap User user) {
Result result = new Result()
return result;
}
/**
* get 發送對象
*/
@GetMapping("test")
public Result<?> test(@RequestParam Long id, @SpringQueryMap User user) {
Result result = new Result()
return result;
}
/**
* post 發送多參數
*/
@PostMapping("getBaseWorkMsg")
public Result<?> manyParam(@RequestParam Long id, @RequestBody TestModel testModel, @SpringQueryMap User user) {
Result result = new Result()
return result;
}
方案二:自定義config
package com.test.config;
import org.springframework.cloud.openfeign.support.AbstractFormWriter;
import org.springframework.cloud.openfeign.support.JsonFormWriter;
import org.springframework.context.annotation.Bean;
/**
* FeignConfig
*/
@Configuration
public class FeignConfig {
@Bean
public AbstractFormWriter jsonFormWriter() {
return new JsonFormWriter();
}
}
// 客戶端
/**
* post 上傳文件 同時發送對象
*/
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<?> upload(@RequestPart MultipartFile file, @RequestParam String fileUrl, @RequestPart User user);
/**
* post 發送多參數
*/
@PostMapping(value = "getBaseWorkMsg", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<?> manyParam(@RequestParam Long id, @RequestPart TestModel testModel, @RequestPart User user);
// 服務端
/**
* post 上傳文件 同時發送對象
*/
@PostMapping(value = "upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result<?> upload(@RequestPart MultipartFile file, @RequestParam String fileUrl, @RequestPart User user) {
Result result = new Result()
return result;
}
/**
* post 發送多參數
*/
@PostMapping(value = "getBaseWorkMsg", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public Result<?> manyParam(@RequestParam Long id, @RequestPart TestModel testModel, @RequestPart User user){
Result result = new Result()
return result;
}