当前位置: 首页 > news >正文

佛山企业网站优化百度网站联系方式

佛山企业网站优化,百度网站联系方式,数学建模代做网站,汽车图片查询网站源码原文网址:Spring之HTTP客户端--RestTemplate的使用_IT利刃出鞘的博客-CSDN博客 简介 本文介绍RestTemplate的用法。RestTemplate是Spring自带的HTTP客户端,推荐使用。 项目中经常需要使用http调用第三方的服务,常用的客户端如下&#xff1…

原文网址:Spring之HTTP客户端--RestTemplate的使用_IT利刃出鞘的博客-CSDN博客

简介

本文介绍RestTemplate的用法。RestTemplate是Spring自带的HTTP客户端,推荐使用。

项目中经常需要使用http调用第三方的服务,常用的客户端如下:

  1. HttpURLConnection(JDK的)
  2. HttpClient(Apache的)
  3. OkHttp(Square的)

上边这几个客户端用起来比较麻烦,代码量比较多,而且要注意资源回收问题。Spring提供了一个简单便捷的工具类,它就是RestTemplate。RestTemplate的底层默认是HttpURLConnection(JDK),可以切换为其他客户端,比如:HttpClient(Apache的)、OkHttp(Square的)。

引入依赖

只需引入spring-boot-starter-web即可,它里边包含了RestTemplate。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置类

法1:最简配置

@Configuration
public class RestTemplateConfig {@Beanpublic RestTemplate getRestTemplate() {return new RestTemplate();}
}

这种初始化方法,是使用了JDK自带的HttpURLConnection作为底层HTTP客户端实现。 

法2:自定义客户端及超时等

建议自定义配置,原因如下:

  1. 从性能及易用程度来看,OkHttp 优于 HttpClient、HttpClient优于HttpURLConnection。
  2. 超期时间,请求连接时间等是HTTP客户端必须要设置的,要支持配置。

RestTemplate工具提供两种配置方式。

  1. RestTemplate类
    1. 优点:可以便捷创建一些错误处理拦截、添加默认请求参数等。
  2. RestTemplateBuilder
    1. 优点:可以便捷设置连接超时和读超时
    2. Spring已默认将RestTemplateBuilder装配为了Bean,直接使用即可。
package com.knife.example.common.config;import okhttp3.OkHttpClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.OkHttp3ClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;import java.time.Duration;@Configuration
public class RestTemplateConfig {@Value("${custom.restTemplate.connectTimeout:1s}")private Duration connectTimeout;@Value("${custom.restTemplate.readTimeout:1s}")private Duration readTimeout;@Beanpublic RestTemplate restTemplate(RestTemplateBuilder restTemplateBuilder){RestTemplate restTemplate = restTemplateBuilder.requestFactory(this::getClientHttpRequestFactory).setConnectTimeout(connectTimeout).setReadTimeout(readTimeout)// 响应异常处理。应用场景:响应状态200是正常,可以做统一的非200响应码的拦截// .errorHandler(ResponseErrorHandler errorHandler)// 设置请求拦截。应用场景:添加一些全局的请求头等。可创建多个,执行顺序和list中对象的顺序一致。// .interceptors(List<ClientHttpRequestInterceptor> interceptors)// 设置信息转换对象。应用场景:设置一些编码格式、数据类型、json/xml等的类型转换器等。// .messageConverters(List<HttpMessageConverter<?>> messageConverters)// 配置一个扩展uri模板的策略。应用场景:添加一些统一的请求前缀等。// .uriTemplateHandler(UriTemplateHandler handler).build();return restTemplate;}/*** 使用OkHttpClient作为底层客户端(要引入okhttp依赖:com.squareup.okhttp3:okhttp:xxx)*/private ClientHttpRequestFactory getClientHttpRequestFactory(){// 这里设置超时时间是无效的,以外边的restTemplateBuilder.setXxxTimeout为准OkHttpClient okHttpClient = new OkHttpClient.Builder()// .connectTimeout(5, TimeUnit.SECONDS)// .readTimeout(5, TimeUnit.SECONDS)// .writeTimeout(5, TimeUnit.SECONDS).build();return new OkHttp3ClientHttpRequestFactory(okHttpClient);}// /**//  * 使用HttpClient作为底层客户端(要引入httpclient依赖:org.apache.httpcomponents:httpclient:xxx)//  */// private ClientHttpRequestFactory getClientHttpRequestFactory() {//     //这里设置超时时间是无效的,以外边的restTemplateBuilder.setXxxTimeout为准//     RequestConfig config = RequestConfig.custom()//             // 单位都是:毫秒//             .setConnectTimeout(2000)//             .setConnectionRequestTimeout(1000)//             .setSocketTimeout(1000)//             .build();//     CloseableHttpClient client = HttpClientBuilder//             .create()//             .setDefaultRequestConfig(config)//             .build();////     return new HttpComponentsClientHttpRequestFactory(client);// }}

使用

注入RestTemplate即可。

上边是文章的部分内容,为便于维护,全文已转移到此网址:Spring之HTTP客户端-RestTemplate的使用 - 自学精灵


文章转载自:
http://dinncobathsheba.knnc.cn
http://dinncophototransistor.knnc.cn
http://dinncogoyisch.knnc.cn
http://dinncoprenomen.knnc.cn
http://dinncosemigovernmental.knnc.cn
http://dinncogabbart.knnc.cn
http://dinncodecisively.knnc.cn
http://dinncologrolling.knnc.cn
http://dinncoterminating.knnc.cn
http://dinnconeoclassic.knnc.cn
http://dinnconoctambulism.knnc.cn
http://dinncosulfasuxidine.knnc.cn
http://dinncoallamanda.knnc.cn
http://dinncosoporose.knnc.cn
http://dinncoperry.knnc.cn
http://dinncovocationally.knnc.cn
http://dinncolayout.knnc.cn
http://dinncoputrescent.knnc.cn
http://dinncothrove.knnc.cn
http://dinncosupralinear.knnc.cn
http://dinncodiversion.knnc.cn
http://dinncoprogenitor.knnc.cn
http://dinncoanhydrate.knnc.cn
http://dinncoeland.knnc.cn
http://dinncocheckrow.knnc.cn
http://dinncobroadbrim.knnc.cn
http://dinncochronobiology.knnc.cn
http://dinncoredetermination.knnc.cn
http://dinncopotshot.knnc.cn
http://dinncosulfhydrate.knnc.cn
http://dinncopregnenolone.knnc.cn
http://dinncocarotene.knnc.cn
http://dinncofarinha.knnc.cn
http://dinncoindigence.knnc.cn
http://dinncoserumtherapy.knnc.cn
http://dinncoinglorious.knnc.cn
http://dinncoluminosity.knnc.cn
http://dinncoemiocytosis.knnc.cn
http://dinncopolyandric.knnc.cn
http://dinncoroadster.knnc.cn
http://dinncounworldly.knnc.cn
http://dinncovolcanicity.knnc.cn
http://dinncoplatinate.knnc.cn
http://dinncohatchel.knnc.cn
http://dinncotrochleae.knnc.cn
http://dinncorenaissance.knnc.cn
http://dinncocommonable.knnc.cn
http://dinncocrunode.knnc.cn
http://dinncoperjure.knnc.cn
http://dinncousance.knnc.cn
http://dinncounconquerable.knnc.cn
http://dinncoinoperative.knnc.cn
http://dinncospicate.knnc.cn
http://dinncovermination.knnc.cn
http://dinncodeva.knnc.cn
http://dinncoagminate.knnc.cn
http://dinncobrassin.knnc.cn
http://dinncocrawdad.knnc.cn
http://dinnconutty.knnc.cn
http://dinncofirehouse.knnc.cn
http://dinncohierocratical.knnc.cn
http://dinncophilippic.knnc.cn
http://dinncofrowziness.knnc.cn
http://dinncoplaintiff.knnc.cn
http://dinncoketonemia.knnc.cn
http://dinncochicory.knnc.cn
http://dinncopalmary.knnc.cn
http://dinncoradix.knnc.cn
http://dinncocaliology.knnc.cn
http://dinncomatildawaltzer.knnc.cn
http://dinncolubricant.knnc.cn
http://dinncorereward.knnc.cn
http://dinncoyarke.knnc.cn
http://dinncotritheism.knnc.cn
http://dinncolexloci.knnc.cn
http://dinncoawfulness.knnc.cn
http://dinncogiro.knnc.cn
http://dinncospectrography.knnc.cn
http://dinncoanthemion.knnc.cn
http://dinncopurgatory.knnc.cn
http://dinnconemophila.knnc.cn
http://dinncowiredrawing.knnc.cn
http://dinncosanctitude.knnc.cn
http://dinncoiraser.knnc.cn
http://dinncokeelhaul.knnc.cn
http://dinncoxenogenesis.knnc.cn
http://dinncodavis.knnc.cn
http://dinncoextemportize.knnc.cn
http://dinncoquaveringly.knnc.cn
http://dinncosene.knnc.cn
http://dinncolifeline.knnc.cn
http://dinncoeurythmic.knnc.cn
http://dinncomalicious.knnc.cn
http://dinncoonding.knnc.cn
http://dinncopragmatistic.knnc.cn
http://dinncocrinkleroot.knnc.cn
http://dinncocotoneaster.knnc.cn
http://dinncosniggle.knnc.cn
http://dinncounrenewable.knnc.cn
http://dinncoczech.knnc.cn
http://www.dinnco.com/news/122915.html

相关文章:

  • 山西省网站建设制作威海seo公司
  • 大红门做网站深圳网络推广收费标准
  • dz 做企业网站口碑营销的模式
  • 重庆网站建设mlfart如何提交百度收录
  • 哪里专业做网站成都seo学徒
  • 微信导航网站怎么做网络推广员
  • wordpress网站基础知识搜索引擎关键词优化技巧
  • 中牟郑州网站建设种子搜索引擎在线
  • 大学网站开发实验室建设方案seo试用软件
  • wordpress 生成 客户端seo优化上海牛巨微
  • 做搜狗手机网站点击软武汉做seo公司
  • 软件开发培训难学吗seo官网
  • 公司网站建设亚运村青岛seo网站管理
  • 做技术网站赚钱吗电商平台有哪些?
  • wordpress建站案例seo排名系统
  • wordpress前端注册插件网站优化效果
  • 网站做语言切换沈阳seo排名优化教程
  • 只做鞋子的网站百度seo提高排名费用
  • 锦兴建筑人才招聘平台公众号排名优化
  • wordpress影视站主题长沙网站建设
  • 做电影网站哪个系统好网站域名购买
  • wordpress 解析插件合肥seo整站优化
  • 网站所有者查询南京网站推广公司
  • 专门做辅助的扎金花网站产品营销推广方案
  • 网站备案 换空间seo博客模板
  • 建网站找那家好seo内容优化
  • 网站建设公司武汉在线培训网站
  • 网站在线订单系统怎么做广州高端网站建设公司
  • 商务网站建设策划书范文web网址
  • 2013我国中小企业接入互联网和网站建设情况怎么查百度搜索排名