前言
先记下来一些坑点,后续会补充上相关的代码demo。
正文
feign 调用的http proxy 的问题
问题描述:
feign集成okhttp调用第三方http接口,一直报错 connection time out。但是,我在本地使用postman就可以调通。
问题分析:
刚开始我以为是我使用feign作为http client的打开方式不对,所以我又试了httpclient和okhttp分别作为client去调用该接口,结果都是相同的异常。
然后我又想到公司是内网开发,如果要访问外网的话,需要走代理。所以我考虑会不会代理的问题,于是搜索了一下idea的代理配置,结果发现真的有配置http proxy的地方。
我高兴坏了,以为找到了问题所在,但是我配置完之后发现问题并没有解决。后来一想,idea的http proxy可能是给idea自己使用的。
比如,我之前一直不能安装插件,因为没有网络,发现了这个功能之后,或许我就可以配个代理去安装插件了。
正在纠结的时候,一个大佬在旁边提醒了一句,okhttp也可以配置proxy。大佬就是大佬,一语惊醒梦中人,配置了feign使用的okhttp的proxy,果然可以了。
feign 调用接口的响应报文转换为对象的问题
问题描述我记不太清了,留着有时间的时候写个代码示例来重现一下。
解决方法是:只当 produce 的MediaType为json就可以了。
这个问题其实涉及到: 1.consume 和 produce 的作用; 2. http message conveter这个概念
后记
有时间的话总结一下java中各种http client 的工具类。