使用springboot 中的 restTemplate

Spring boot注入RestTemplate实例的2种方式 RestTemplate是我们使用的比较多的模板,用来发送http请求。大多数情况下,需要我们自己注入到Spring IOC容器。 对于低版本的spring boot,比如spring boot 1.3.7,是不支持RestTemplateBuilder创建RestTemplate实例的。 怎么办呢,如下: @Bean public RestTemplate restTemplate() { return new RestTemplate(); } 如果是spring boo... 阅读详情

项目中想直接使用 restTemplate 发送请求。


import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter4;
import org.apache.http.client.HttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;

import java.nio.charset.StandardCharsets;
import java.util.List;

@Configuration
public class RestTemplateConfig {

    @Value("${remote.maxTotalConnect:0}")
    private int maxTotalConnect; //连接池的最大连接数默认为0
    @Value("${remote.maxConnectPerRoute:200}")
    private int maxConnectPerRoute;  //单个主机的最大连接数
    @Value("${remote.connectTimeout:10000}")
    private int connectTimeout; //连接超时默认10s
    @Value("${remote.readTimeout:30000}")
    private int readTimeout; //读取超时默认30s

    //创建HTTP客户端工厂
    private ClientHttpRequestFactory createFactory() {
        if (this.maxTotalConnect <= 0) {
            SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
            factory.setConnectTimeout(this.connectTimeout);
            factory.setReadTimeout(this.readTimeout);
            return factory;
        }
        HttpClient httpClient = HttpClientBuilder.create().setMaxConnTotal(this.maxTotalConnect)
                .setMaxConnPerRoute(this.maxConnectPerRoute).build();
        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(
                httpClient);
        factory.setConnectTimeout(this.connectTimeout);
        factory.setReadTimeout(this.readTimeout);
        return factory;
    }

    //初始化RestTemplate,并加入spring的Bean工厂,由spring统一管理
    @Bean
    @ConditionalOnMissingBean(RestTemplate.class)
    public RestTemplate getRestTemplate() {
        RestTemplate restTemplate = new RestTemplate(this.createFactory());
        List<HttpMessageConverter<?>> converterList = restTemplate.getMessageConverters();

        //重新设置StringHttpMessageConverter字符集为UTF-8,解决中文乱码问题
        HttpMessageConverter<?> converterTarget = null;
        for (HttpMessageConverter<?> item : converterList) {
            if (StringHttpMessageConverter.class == item.getClass()) {
                converterTarget = item;
                break;
            }
        }
        if (null != converterTarget) {
            converterList.remove(converterTarget);
        }
        converterList.add(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));

        //加入FastJson转换器
        converterList.add(new FastJsonHttpMessageConverter4());
        return restTemplate;
    }


}

配置了 RestTemplateConfig  之后即可通过


    @Autowired
    private RestTemplate restTemplate;

即可使用

Springboot之restTemplate配置及使用 Springboot之restTemplate配置及使用 在springboot项目中,可以直接注入RestTemplate使用,也可进行简单配置 基础配置 @Configuration public class RestTemplateConfig { @Bean public RestTemplate restTemplate(ClientHttpRequestFactory factory) { return new RestTemplate(factory); 阅读详情

相关推荐

SpringBoot使用RestTemplate实现发送HTTP请求

RestTemplate 是 Spring 框架提供的一个用于访问 RESTful 服务的客户端工具,它简化了与 RESTful 服务的交互,并提供了一系列方便的方法来发送 HTTP 请求、处理响应以及处理错误。RestTemplate 提供了一组简单易用的方法,使得发送HTTP请求变得非常简单和直观。RestTemplate 可以自动将请求和响应的 JSON/XML 数据转换为 Java 对象,简化了数据的处理过程。

pan_junbiao的博客 1953

http协议之digest(摘要)认证,详细讲解并附Java SpringBoot源码

http协议之digest(摘要)认证,详细讲解并附Java SpringBoot源码

一火的专栏 8459

SpringBoot2.x系列教程(六十七)Spring Boot注入RestTemplate及源码解析

引入SpringBoot本来就支持REST服务,因此在SpringBoot项目之间经常需要通过REST的形式来相互调用。本文以具体的实例带大家了解一下SpringBoot中怎么使用RestTemplate进行接口调用。同时,会讲解部分相关源码。 RestTemplate的实例化 RestTemplate实例通常需要自己进行定制,SpringBoot相关的自动配置bean。但是,SpringBoot提供了自动配置的RestTemplateBuilder,可以用它来创建RestTemplate实例。 那么,Sp

程序新视界 1831

spring boot依靠security实现digest认证demo

概述 HTTP 摘要认证使用对通信双方都可知的口令进行校验,最终的传输数据并非明文形式。HTTP 摘要基本认证意在解决 HTTP 基本认证存在的大部分严重漏洞,但不应将其认为是Web安全的最终解决方案。 参数 HTTP摘要认证的回应与HTTP基本认证相比要复杂得多,下面看看HTTP摘要认证中涉及的一些参数: ◎ username:用户名。 ◎ password:用户密码。 ◎ realm:认证域,由服务器返回。 ◎ opaque:透传字符串,客户端应原样返回。 ◎ method:请求的方法。 ◎ nonce

zhanwuguo8346的博客 1416

基于FPGA的示波器设计

ADC 、DAC、FPGA、LCD液晶、示波器

FDL_AQ的博客 1万+

信创那些事儿——Spring Boot中集成东方通中间件(TongWeb)

在Spring Boot中集成东方通中间件(如TongWeb作为Servlet容器)通常涉及几个步骤,但需要注意的是,TongWeb本身是一个独立的Java EE应用服务器,而不是像Tomcat那样可以直接嵌入到Spring Boot应用中的中间件。因此,集成通常意味着将Spring Boot应用打包为WAR文件并部署到TongWeb服务器上。

来北欧写代码 6489

3.SpringBoot 如何注入RestTemplate

创建一个文件夹 ,我这边习惯于创建config文件夹,将下面的一段代码放到里面 import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.conve

神言如殇的博客 2186

Windows安装WSL子系统及docker,以及WSL和docker配置、使用及问题解决

在Windows操作系统中,Ubuntu子系统(也称为Windows Subsystem for Linux, WSL)为开发者提供了一个在Windows环境下运行Linux环境的平台。然而,有时用户在按照Ubuntu子系统或者使用WSL时,可能会遇到各种问题,下面总结一下解决方式。想要在Windows上安装Docker(实际上是基于Hyper-V或者WSL2这两项虚拟化技术),需要开启虚拟化功能,所以不管是对于系统还是硬件都有一定的要求。

sym的博客 9781

浏览器-基本认证(Basic Authentication)-摘要认证(digest authentication)=spring boot实现demo

> 平时开发的 java web 网站登录,都是通过表单提交登录信息。有时一些中间件登录是浏览器弹窗,没有看到表单实现代码。故通过查询,发现两种 HTTP 简单认证: 基本认证( Basic Authentication )、摘要认证( digest authentication )等,本次通过 java实现 spring boot 基本和摘要认证。

privateobject的博客 3281

WPS JS宏实战:批量调整200个Word表格格式的避坑指南(附完整代码)

本文提供了一份详尽的WPS JS宏实战指南,针对批量调整大量Word表格格式的需求。文章深入解析了如何利用JS宏自动化设置字体、行距和边框,并重点解决了常见的“首行访问报错”等核心难题,附有可直接使用的完整代码,帮助用户显著提升文档处理效率。

weixin_29280219的博客 429

MTK Linux DRM分析(十一)- MTK KMS Panel显示屏驱动

面板扩展(Panel Extension)是指 MediaTek 在标准 DRM 面板驱动框架之上添加的定制化功能模块。

iTom1900 1684

SpringBoot之RestTemplate

现如今的 IT 项目,由服务端向外发起网络请求的场景,基本上处处可见!传统情况下,在服务端代码里访问 http 服务时,我们一般会使用JDK的或者Apache的HttpClient,不过这种方法使用起来太过繁琐,而且 api 使用起来非常的复杂,还得操心资源回收。以下载文件为例,通过Apache的HttpClient方式进行下载文件,下面这个是我之前封装的代码逻辑,看看有多复杂!其实Spring已经为我们提供了一种简单便捷的模板类来进行操作,它就是。是一个执行HTTP。

八戒的博客 4672

保姆级教程:用GMT6.1绘制专业地形起伏图(从数据下载到出图避坑)

本文提供了一份详细的GMT6.1绘制地形起伏图的保姆级教程,从环境搭建到数据下载,再到核心绘图命令解析,帮助用户避开常见错误。特别适合科研人员和地理信息爱好者快速掌握专业地形图的绘制技巧,提升工作效率。

weixin_42549723的博客 276

SpringBoot RestTemplate详解

RestTemplate是Spring提供的进行远程调用客户端RestTemplate提供了很多远程调用的方法,能够大大提高客户端的编写效率。调用RestTemplate的默认构造函数,RestTemplate对象在底层通过使用java.net包下的实现创建HTTP 请求可以通过使用ClientHttpRequestFactory指定不同的HTTP请求方式ClientHttpRequestFactory接口主要提供了三种实现方式。

白羊座的橙子 1万+

基于Simulink的输入-输出线性化精确转矩控制

本文详细介绍了基于Simulink的永磁同步电机(PMSM)输入-输出线性化(IOL)精确转矩控制方法。针对传统解耦控制在非线性转矩特性下的局限性,通过建立PMSM非线性状态空间模型,设计IOL控制器将系统转化为线性输入-输出映射。文章包含系统原理推导、Simulink建模步骤、参数整定方法和仿真结果分析,验证了IOL在高动态、宽速域工况下的优越性能(转矩误差降低90%)。最后提出了工程实现要点和扩展应用方向,为开发高精度电机驱动系统提供了实用指导。

xiaoheshang_123的博客 304

MFC属性网格控件(CMFCPropertyGridCtrl)完全指南:构建专业属性编辑界面

本文详细介绍了MFC中的CMFCPropertyGridCtrl控件的使用方法。主要内容包括:控件基础用法(初始化、添加属性、事件处理)、高级设置(自定义外观、创建属性类型、动态更新)、派生类实现(自定义绘制、搜索过滤功能)、界面集成技巧(对话框布局、属性编辑器)以及实际应用示例。文章重点讲解了如何通过继承和自定义实现复杂功能,并提供了性能优化、多语言支持等最佳实践方案。该控件适用于需要大量参数配置的应用程序,能够创建类似Visual Studio属性窗口的专业界面。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 154

Springboot 使用RestTemplate

最近项目中springboot使用了RestTemplate,在此了解和学习了一下,有问题请指正 1、先学习最简单的使用 创建RestTemplate public static RestTemplate restTemplate() { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); requestFactory.setConnectTime.

醇醛酸酯 的博客 3万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

重学SpringBoot3-RestTemplate配置与使用详解

RestTemplate 是 Spring 框架提供的一个用于发送 HTTP 请求的同步客户端工具类。在 SpringBoot 3.x 版本中,我们依然可以使用 RestTemplate 来进行 REST API 的调用。本文将详细介绍如何在 SpringBoot 3 项目中配置和使用 RestTemplate。

CoderJia的学习之路 7780

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Spring Boot中的RestTemplate怎么使用

在Spring Boot中,RestTemplate是一个用于访问RESTful API的HTTP客户端工具。您可以使用RestTemplate来执行HTTP请求并获取响应。以下是使用RestTemplate的基本步骤: 在Spring Boot应用程序中添加RestTemplate依赖项。如果您使用的是Maven,则可以在pom.xml文件中添加以下依赖项: <dependency&g...

weixin_35748962的博客 320

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

SpringBoot-RestTemplate

SpringBoot-RestTemplate 需要的Maven RestTemplate是spring的一个rest客户端,在spring-web这个包下,spring boot的依赖如下: <!-- web服务--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spr

weixin_45203607的博客 3651

SpringBoot RestTemplate

是 Spring Framework 原生封装的同步阻塞式 HTTP 请求客户端,专门用于 Java 程序内部发起 HTTP/HTTPS 请求,实现跨服务、跨系统、第三方接口调用。就是 Java 代码里的“浏览器”,可以让后端代码主动发送 GET、POST、PUT、DELETE 请求,访问别的接口、获取数据、提交数据。SpringBoot2.x / 3.x 中,自动内置该功能,无需额外导入依赖,直接配置即可使用。Spring 官方目前将其标记为维护模式。

只要肯攀登,终有登顶时 264

掌握 Spring Boot 中的 WebClient:何时以及为何使用它而不是 RestTemplate

WebClient 是一款功能强大、用途广泛且现代化的 Spring Boot 应用程序 HTTP 客户端,可帮助开发人员构建高效、反应灵敏且可扩展的系统。许多较旧的应用程序是在 WebClient 出现之前构建的,并且严重依赖 RestTemplate。则是现代、可扩展且反应灵敏的 Spring Boot 应用程序的首选。它提供了一种与 Web 服务交互的更有效方式,尤其是在需要高并发性和低延迟的场景中。仍然是许多 Spring Boot 应用程序中广泛使用的选项,尤其是在传统的同步架构中。

adminmail的博客 2905

springboot restTemplate配置

spring template配置示例 @Bean public RestTemplate restTemplate() { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); requestFactory.setConnect...

asd804171023的博客 3121

Springboot中的RestTemplate

在Spring Boot应用程序中,RestTemplate是一个用于进行HTTP请求的强大工具。通常用于与RESTful API进行交互、调用其他服务或执行HTTP请求。它提供了各种方法来发送HTTP请求(如GET、POST、PUT、DELETE等),并处理响应。通过在Spring Boot启动类中注册RestTemplate bean,您可以轻松地在应用程序的其他部分注入并使用它。要注册一个RestTemplate bean,您需要在Spring Boot应用程序的配置类(通常是带有注解的类)中使用。

Go_ahead_forever的博客 1325
上一篇: java集成Swagger-ui
下一篇: 代码生成器
一个小白开发
博客等级 码龄7年 1244粉丝 34原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值