feign调用第三方接口,编码定义GBK,响应中文乱码处理方式
更新时间:2024年01月10日 17:03:59 作者:耨耨菲
这篇文章主要介绍了feign调用第三方接口,编码定义GBK,响应中文乱码处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
feign调用第三方接口,编码定义GBK,响应中文乱码
错误代码
如下:
@FeignClient(value="{}",configuration=FeignClientLogConfiguration.class, contextId="id") public interface FeignClient{ @PostMapping(value="/test", headers={"Content-Type=application/json;charset=gbk"}) String test(String req); }
方法调用
如下:
@Autowired FeignClient feignClient; public void getTest(请求实体类 req){ String jsonReq = JSON.toJSONString(req); String resp = feignClient.test(jsonReq); log.info("响应报文:{}", resp);// 日志打印出来中文乱码 }
在网上寻找各种调用方法测试
如:自定义Hystrix熔断策略,自定义编码拦截等,效果都不理想;
最后通过更改返回的响应对象,实现了中文乱码转换正常
代码
如下:
import feign.Response; @FeignClient(value="{}",configuration=FeignClientLogConfiguration.class, contextId="id") public interface FeignClient{ @PostMapping(value="/test", headers={"Content-Type=application/json;charset=gbk"}) Response test(String req); }
方法调用
如下:
@Autowired FeignClient feignClient; public void getTest(请求实体类 req){ String jsonReq = JSON.toJSONString(req); Response resp = feignClient.test(jsonReq); String resp = this.printToRespInfo(resp); log.info("响应报文:{}", resp);// 日志打印出来中文乱码 } /** * 格式化提取响应数据 */ private String printToRespInfo(Response response){ InputStream inputStream = null; try{ Response.Body body = response.body(); inputStream = body.asInputStream(); return IOUtils.toString(inputStream, "GBK"); } catch (IOException e){ log.error("response to json is error"); } finally { IOUtils.closeQuietly(inputStream); } return null; }
总结
好了,以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
基于JAVA代码 获取手机基本信息(本机号码,SDK版本,系统版本,手机型号)
本文给大家介绍基于java代码获取手机基本信息,包括获取电话管理对象、获取手机号码、获取手机型号、获取SDK版本、获取系统版本等相关信息,对本文感兴趣的朋友一起学习吧2015-12-12Java中stream处理中map与flatMap的比较和使用案例
这篇文章主要介绍了Java中stream处理中map与flatMap的比较和使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-03-03解决SpringBoot运行报错:找不到或无法加载主类的问题
这篇文章主要介绍了解决SpringBoot运行报错:找不到或无法加载主类的问题,具有很好的参考价值,对大家的学习或工作有一定的参考价值,需要的朋友可以参考下2023-09-09利用Intellij Idea连接远程服务器实现远程上传部署功能
大家在使用Intellij Idea开发程序的时候,是不是需要部署到远程SSH服务器运行呢,当然也可以直接在idea软件内容实现配置部署操作,接下来通过本文给大家分享利用Intellij Idea连接远程服务器实现远程上传部署功能,感兴趣的朋友跟随小编一起看看吧2021-05-05
最新评论