SpringCloud项目中Feign组件添加请求头所遇到的坑如何解决


本文小编为大家详细介绍“SpringCloud项目中Feign组件添加请求头所遇到的坑如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringCloud项目中Feign组件添加请求头所遇到的坑如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在spring cloud的项目中用到了feign组件,简单配置过后即可完成请求的调用。又因为有向请求添加Header头的需求,查阅了官方示例后,就觉得很简单,然后一顿操作之后调试报错…按官方修改的示例:提示错误:java.lang.IllegalArgumentException: method GET must not have a request body.通过断点debug发现feign发请求时把userInfo参数当成了requestBody来处理,而okhttp3会检测get请求不允许有body(其他类型的请求哪怕不报错,但因为不是设置到请求头,依然不满足需求)。查阅官方文档里是通过Contract(Feign.Contract.Default)来解析注解的:Feign annotations define the Contract between the interface and how the underlying client should work. Feign’s default contract defines the following annotations:从自动配置类找到使用的是spring cloud的SpringMvcContract(用来解析@RequestMapping相关的注解),而这个注解并不会处理解析上面列的注解spring cloud使用了自己的SpringMvcContract来解析注解,导致默认的注解解析方式失效。解决方案自然就是重新解析处理feign的注解,这里通过自定义Contract继承SpringMvcContract再把Feign.Contract.Default解析逻辑般过来即可(重载的方法是在SpringMvcContract基础上做进一步解析,否则Feign对RequestMapping相关对注解解析会失效)代码如下(此处只对@Headers、@Param重新做了解析):改完马上进行新一顿的操作, 看请求日志已经设置成功,响应OK!:请求:{“type”:”OKHTTP_REQ”,”uri”:”/test/header”,”httpMethod”:”GET”,”header”:”{“accept”:[“/”],”userinfo”:[“{“userId”:”sssss”,”phone”:”13544445678],”x-b3-parentspanid”:[“e49c55484f6c19af”],”x-b3-sampled”:[“0″],”x-b3-spanid”:[“1d131b4ccd08d964″],”x-b3-traceid”:[“9405ce71a13d8289″]}”,”param”:””}响应{“type”:”OKHTTP_RESP”,”uri”:”/test/header”,”respStatus”:0,”status”:200,”time”:5,”header”:”{“cache-control”:[“no-cache,no-store,max-age=0,must-revalidate”],”connection”:[“keep-alive”],”content-length”:[“191″],”content-type”:[“application/json;charset=UTF-8″],”date”:[“Fri,11Oct201913:02:41GMT”],免费云主机域名“expires”:[“0″],”pragma”:[“no-cache”],”x-content-type-options”:[“nosniff”],”x-frame-options”:[“DENY”],”x-xss-protection”:[“1;mode=block”]}”}读到这里,这篇“SpringCloud项目中Feign组件添加请求头所遇到的坑如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: php开发网站的整个工作流程是什么

这篇文章主要介绍了php开发网站的整个工作流程是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php开发网站的整个工作流程是什么文章都会有所收获,下面我们一起来看看吧。 一、需求分析网站开发前期需要进行需求分析,开发者需要与客…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 07/05 22:26
下一篇 07/05 22:41

相关推荐