乾丰小何啊 發表於 2026-1-13 09:38:42

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

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>1.设计一个转换器</li><li>2.在Feign类上</li><li>3.在Feign定义得方法中</li><li>4.总结</li></ul></div><p>当不想用restTemplate处理form-data接口时,采取以下方式:</p>
<p class="maodian"></p><h2>1.设计一个转换器</h2>
<div class="jb51code"><pre class="brush:java;">@Slf4j
@Configuration
public class FeignRequestIntercepter{
    @Bean
    @Primary
    @Scope("prototype")
    public Encoder multipartFormEncoder() {
      return new SpringFormEncoder();
    }
}
</pre></div>
<p class="maodian"></p><h2>2.在Feign类上</h2>
<p>加入转换器配置</p>
<div class="jb51code"><pre class="brush:java;">@FeignClient(value = "Student",configuration = {FeignRequestIntercepter.class})
public interface StudentFeignClient {...}
</pre></div>
<p class="maodian"></p><h2>3.在Feign定义得方法中</h2>
<p>定义接口</p>
<div class="jb51code"><pre class="brush:java;">@PostMapping("/innerScore/viewScoreRemark")
Response viewScoreRemark(JSONObject json);
</pre></div>
<p>如果是多参数,则添加<strong>@RequestParam</strong>注解声明变量</p>
<div class="jb51code"><pre class="brush:java;">@PostMapping("/innerScore/viewScoreRemark")
Response viewScoreRemark(@RequestParam Long classId, @RequestParam Long studentId);
</pre></div>
<p>否则报错</p>
<blockquote><p>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)</p></blockquote>
<p class="maodian"></p><h2>4.总结</h2>
<p>以上为个人经验,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>关于feign对x-www-form-urlencode类型的encode和decode问题</li><li>Spring Cloud使用Feign实现Form表单提交的示例</li><li>SpringBoot项目通过Feign调用三方接口的详细教程</li><li>feign调用第三方接口,编码定义GBK,响应中文乱码处理方式</li><li>springboot中如何使用openfeign进行接口调用</li><li>java异步调用Feign接口空指针问题解决</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: 使用Feign调用form-data的接口问题