java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Feign调用form-data的接口

使用Feign调用form-data的接口问题

作者:黄黄黄黄黄莹

文章介绍了当不想使用restTemplate处理form-data接口时,可以通过设计一个转换器并在Feign类上加入转换器配置来解决,在Feign定义的方法中,如果接口有多参数,需要使用@RequestParam注解声明变量,否则会报错,文章总结了个人经验,希望能给大家提供帮助

当不想用restTemplate处理form-data接口时,采取以下方式:

1.设计一个转换器

@Slf4j
@Configuration
public class FeignRequestIntercepter{
    @Bean
    @Primary
    @Scope("prototype")
    public Encoder multipartFormEncoder() {
        return new SpringFormEncoder();
    }
}

2.在Feign类上

加入转换器配置

@FeignClient(value = "Student",configuration = {FeignRequestIntercepter.class})
public interface StudentFeignClient {...}

3.在Feign定义得方法中

定义接口

@PostMapping("/innerScore/viewScoreRemark")
Response viewScoreRemark(JSONObject json);

如果是多参数,则添加@RequestParam注解声明变量

@PostMapping("/innerScore/viewScoreRemark")
Response viewScoreRemark(@RequestParam Long classId, @RequestParam Long studentId);

否则报错

Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract com.iqiyi.nexus.dto.Response xxx.viewScoreRemark(java.lang.Long,java.lang.Long)

4.总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文