当前位置:首页 > 技术文章 > 正文内容

feign返回中文乱码的问题(feign返回结果统一处理)

zonemu2个月前 (08-11)技术文章39

最近改造项目集成到微服务体系中,使用openfeign遇到feign请求其他的服务返回的数据中文乱码的问题;本人采用以下的方式解决;

由于历史的项目,涉及的代码比较多,feign默认的请求方式是httpClient,感觉应该是哪里配置的相关httpClient设置;通过修改feign的请求方式为okhttp;

方法如下:

1:导入依赖

<dependency>
    <groupId>io.github.openfeign</groupId>
    <artifactId>feign-okhttp</artifactId>
</dependency>

2:配置增加

#禁用httpclient方式
feign.httpclient.enabled = false

#启用okhttp方式

feign.okhttp.enabled=true

feign.hystrix.enabled = false

feign.compression.request.enabled = true

feign.compression.response.enabled = true

3:增加配置类

@Configuration
@ConditionalOnClass(Feign.class)
@AutoConfigureBefore(FeignAutoConfiguration.class)
public class FeignOkHttpConfig {
    @Bean
    public okhttp3.OkHttpClient okHttpClient(){
        return new okhttp3.OkHttpClient.Builder()
                //设置连接超时
                .connectTimeout(60, TimeUnit.SECONDS)
                //设置读超时
                .readTimeout(60, TimeUnit.SECONDS)
                //设置写超时
                .writeTimeout(120,TimeUnit.SECONDS)
                //是否自动重连
                .retryOnConnectionFailure(false)
                .connectionPool(new ConnectionPool())
//                .addInterceptor(new OkHttpLogInterceptor())
                //构建OkHttpClient对象
                .build();
    }

    /**
     * 解决okhttp 不支持springmvc 注解的问题
     * @return
     */
    @Bean
    public Contract feignConfiguration() {
        return new SpringMvcContract();
    }
}

相关文章

我的VIM配置(如何配置vim编辑环境)

写一篇关于VIM配置的文章,记录下自己的VIM配置,力求简洁实用。VIM的配置保存在文件~/.vimrc中(Windows下是C:\Users\yourname \_vimrc)。VIM除了自身可配置...

最快认知什么才是HTML5广告!(h5广告设计是什么)

H5广告似乎是自UI风靡之后,又一个热度极高的词儿。他是什么?一个字母加一个数字是个什么意思? 为什么如此受欢迎?金色号角会议室,创作事业部赵阳同学就HTML5广告做了详尽生动的分享,带大家一起用手机...

全屋定制板材怎么选不出错?6 种板材深度对比,3 套方案闭眼选

装修选板材头疼吧?刚装完的柜子变形发霉,说好的环保结果甲醛超标,这种翻车现场见太多了。厨房卫生间千万别用密度板,这玩意儿遇水就膨胀,半年准完蛋。颗粒板性价比确实高,但小厂出的真心不敢用。环保等级至少得...

js中数组filter方法的使用和实现(js实现数组的indexof方法)

定义filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。语法var newArray = arr.filter(callback(element[, index[, se...

2021系列——JavaScript比较数组的7种方法

本文我会介绍一些基于Property值对数组进行排序的方法,希望这些技巧能够对你2021年的JS代码编写有点点帮助。多多少少在JS中,我们会碰到某种方式来比较两个对象数组并找出差异,当然也可能是比较并...

VUE-router(vuerouter有哪几种路由守卫)

七.Vue-router1、什么是vue-routervue-router是vue.js官方路由管理器。vue的单页应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统页面切换是...