Fegin MultipartFile和@GetMapping 发送对象、@PostMapping 发送多参数

方案一:使用 @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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章