使用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]