微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Body参数不能与表单参数一起使用 – 使用Headers和json数据来表示客户端

我有这样的FeignClient

@RequestLine("POST /enroll")
@Headers({ "header1: {header1}","header2: {header2}","Content-Type: application/json" })
ResponseDto enroll(@Param("header1") String header1,@Param("header1") String header1,RequestDto requestDto)throws MyCustomException;

`
我没有使用spring cloud netflix.但我一直得到以下例外.

Caused by: java.lang.IllegalStateException: Body parameters cannot be used with form parameters.
at feign.Util.checkState(Util.java:128)
at feign.Contract$BaseContract.parseAndValidateMetadata(Contract.java:112)
at feign.Contract$BaseContract.parseAndValidatateMetadata(Contract.java:64)
at feign.ReflectiveFeign$ParseHandlersByName.apply(ReflectiveFeign.java:146)
at feign.ReflectiveFeign.newInstance(ReflectiveFeign.java:53)
at feign.Feign$Builder.target(Feign.java:209)
at feign.Feign$Builder.target(Feign.java:205)

我像这样实例化我的客户端.

return Feign.builder()
        .encoder(new JacksonEncoder())
        .decoder(new JacksonDecoder())
        .logger(new Slf4jLogger())
        .logLevel(Logger.Level.FULL)
        .target(RegularFeignClient.class,url);
最佳答案
哇这是一个棘手的问题.参数的顺序在这里很重要.

@RequestLine("POST /enroll")
@Headers({ "header1: {header1}","Content-Type: application/json" })
ResponseDto enroll(RequestDto requestDto,@Param("header1") String header1)throws MyCustomException;

这个工作!!!

感谢我的高级开发人员.他找到了.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐