广告
返回顶部
首页 > 资讯 > 精选 >如何解决RestTemplate的getForEntity调用接口乱码的问题
  • 714
分享到

如何解决RestTemplate的getForEntity调用接口乱码的问题

2023-06-20 19:06:38 714人浏览 安东尼
摘要

本篇内容介绍了“如何解决RestTemplate的getForEntity调用接口乱码的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!R

本篇内容介绍了“如何解决RestTemplate的getForEntity调用接口乱码的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

RestTemplate 的getForEntity调用接口乱码

有时候,当我们在SpringBoot项目中使用restTemplate去调用第三方接口时,会发现返回的body中出现了乱码,百度一搜,基本都说是需要将restTemplate中的消息转换器中的StringHttpMessageConverter的字符编码由iso8859-1改为utf-8 ,但是发现并不管用,那么还有一种可能是第三方接口的数据经过GZIP压缩过

如何解决RestTemplate的getForEntity调用接口乱码的问题

默认情况下,restTemplate使用的是jdk的HTTP调用器,并不支持GZIP解压,所以无法解析。

可以使用Apache 的HttpClient来解决,HttpClient其中内置了对于GZIP的支持

具体做法如下:

  • 引入pom坐标:

<dependency>   <groupId>org.apache.httpcomponents</groupId>   <artifactId>httpclient</artifactId>   <version>4.5.3</version></dependency>
  • 修改restTemplate配置:

@Beanpublic RestTemplate restTemplate() {        RestTemplate restTemplate = new RestTemplate(new HttpComponentsClientHttpRequestFactory()); //Apache Httpclient        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));        return restTemplate;    }

此时重新使用restTemplate调用接口,发现数据已经正常了。

RestTemplate返回值乱码解决

一、在调用RestTemplate

的getForEntity(String url, Class responseType, Object… uriVariables)的接口时,返回中文字是乱码的

二、我们来分析下原因:

查看RestTemplate的源码发现

如何解决RestTemplate的getForEntity调用接口乱码的问题

在构造函数中,看到红色圈出来的代码了吗,继续点击进去。

如何解决RestTemplate的getForEntity调用接口乱码的问题

StringHttpMessageConvert这个类中的设置的编码格式为GBK的编码格式,即图中的ISO-8859-1

如何解决RestTemplate的getForEntity调用接口乱码的问题

三、接下来我们改写代码

在自己代码里面获取RestTemplate对象之后,加上一段代码:

如何解决RestTemplate的getForEntity调用接口乱码的问题

为了大家可以复制,我把代码粘贴出来了,如下所示:

 RestTemplate restTemplate = new RestTemplate();        List<HttpMessageConverter<?>> httpMessageConverters = restTemplate.getMessageConverters();        httpMessageConverters.stream().forEach(httpMessageConverter -> {            if(httpMessageConverter instanceof StringHttpMessageConverter){                StringHttpMessageConverter messageConverter = (StringHttpMessageConverter) httpMessageConverter;                messageConverter.setDefaultCharset(Charset.forName("UTF-8"));            }        });        //发送请求        String JSONStr = restTemplate.getForEntity(url, String.class).getBody();

“如何解决RestTemplate的getForEntity调用接口乱码的问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何解决RestTemplate的getForEntity调用接口乱码的问题

本文链接: https://www.lsjlt.com/news/299450.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 解决RestTemplate 的getForEntity调用接口乱码的问题
    RestTemplate 的getForEntity调用接口乱码 有时候,当我们在SpringBoot项目中使用restTemplate去调用第三方接口时,会发现返回的body中出现...
    99+
    2022-11-12
  • 如何解决RestTemplate的getForEntity调用接口乱码的问题
    本篇内容介绍了“如何解决RestTemplate的getForEntity调用接口乱码的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!R...
    99+
    2023-06-20
  • mysql CAPI接口读取中文乱码的问题如何解决
    这篇文章主要讲解了“mysql CAPI接口读取中文乱码的问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql CAPI接口读取中文乱码的问...
    99+
    2022-10-18
  • MySQL如何解决DOS窗口乱码问题
    乱码问题如下: 导致问题产生的原因很简单,无非是命令行的编码和MySQL内部设置的编码出现了偏差。我们右键属性查看以下命令行的编码方式是GBK。 解决: mysql> show variables lik...
    99+
    2022-06-01
    MySQL 乱码 MySQL dos窗口
  • 如何解决Angular2 + node接口调试的问题
    小编给大家分享一下如何解决Angular2 + node接口调试的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!事情的起因由...
    99+
    2022-10-19
  • 如何解决php 连接oracle乱码问题
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑如何解决php 连接oracle乱码问题?PHP 连接Oracle及乱码问题笔记1. PHP连接Oracle步骤1. 提取Oracle Instant Client核心D...
    99+
    2016-10-23
    php oracle
  • php连接mysql乱码问题如何解决
    今天小编给大家分享一下php连接mysql乱码问题如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、乱码形成原因当使...
    99+
    2023-07-05
  • rhythmbox乱码的问题如何解决
    这篇文章主要介绍“rhythmbox乱码的问题如何解决”,在日常操作中,相信很多人在rhythmbox乱码的问题如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”rhythmbox乱码的问题如何解决”的疑...
    99+
    2023-06-10
  • 如何解决Python调用MySQLdb插入中文乱码的问题
    这篇文章主要介绍如何解决Python调用MySQLdb插入中文乱码的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MySQLdb插入中文乱码#!/usr/bin/python# -*- cod...
    99+
    2023-06-29
  • 如何解决mysql insert乱码的问题
    问题介绍: 在mysql中插入中文乱码,或mysql中中文正常显示,但jsp在前台显示mysql中的中文时乱码。 解决方法: 进入mysql控制台,执行下面的命令即可: SET character_set_cli...
    99+
    2022-05-30
    mysql insert 乱码
  • 如何解决Java EE的乱码问题
    今天就跟大家聊聊有关如何解决Java EE的乱码问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。51CTO曾经给大家介绍过很多乱码的问题,如“深度剖析Python 中文乱码说明”、...
    99+
    2023-06-17
  • 如何解决ajax的responseText乱码的问题
    这篇文章主要讲解了“如何解决ajax的responseText乱码的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决ajax的responseTe...
    99+
    2022-10-19
  • 如何解决jsp中的rar文件连接乱码问题
    这篇文章主要讲解了“如何解决jsp中的rar文件连接乱码问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决jsp中的rar文件连接乱码问题”吧!在jsp页面中做了一个rar文件的链接...
    99+
    2023-06-03
  • 如何解决解决户端连接CentOS系统乱码问题
    本篇文章为大家展示了如何解决解决户端连接CentOS系统乱码问题,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用CentOS系统的时候,经常会遇到ssh客户端连接CentOS系统乱码问题,这次我们...
    99+
    2023-06-16
  • MySQL和JSP的乱码问题如何解决
    这篇文章主要介绍“MySQL和JSP的乱码问题如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL和JSP的乱码问题如何解决”文章能帮助大家解决问题。 ...
    99+
    2023-05-12
    mysql jsp
  • 如何解决linux下mysql乱码的问题
    小编给大家分享一下如何解决linux下mysql乱码的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!项目进行到和服务器交互,...
    99+
    2022-10-18
  • 如何解决gvim的菜单乱码问题
    小编给大家分享一下如何解决gvim的菜单乱码问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!gvim的菜单乱码问题的解决方法:(乱码是由于系统内码不兼容导致,系...
    99+
    2023-06-09
  • 如何解决PHP base64编码后解码乱码的问题
    如何解决PHP base64编码后解码乱码的问题 PHP base64编码后解码乱码的解决办法:用GET形式传递时,防止【+】号被替换成空格即可,代码为【$str = base64_decode(str_replace(" ","...
    99+
    2023-09-06
    servlet java html
  • 如何解决git status中文乱码的问题
    Git是目前最流行的版本控制工具之一,而在使用Git时,一些中文项目路径或文件名可能会出现乱码,特别是在使用git status命令时,可能会看到类似于“\344\270\215\345\231\250\346\265\213”,这种乱码对...
    99+
    2023-10-22
  • 如何解决php ci 中文乱码的问题
    本篇内容介绍了“如何解决php ci 中文乱码的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php ci中文乱码的解决办法:1、通过p...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作