博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring boot ----RestTemplate学习笔记
阅读量:6970 次
发布时间:2019-06-27

本文共 2680 字,大约阅读时间需要 8 分钟。

****spring boot-----restTemplate

封装了HttpURLConnection,HttpClient,Netty等接口访问实现库
restTemplet包含以下部分
HttpMessageConverter ClientHttpRequestFactory -->HttpURLConnection ResponseErrorHandler ClientHttpRequestInterceptor
部分实例代码
(1)发送GET请求(getForObject()、getForEntity()、exchange())
// 1-getForObject()
User user1 = this.restTemplate.getForObject(uri, User.class);
// 2-getForEntity()
ResponseEntity responseEntity1 = this.restTemplate.getForEntity(uri, User.class);
HttpStatus statusCode = responseEntity1.getStatusCode();
HttpHeaders header = responseEntity1.getHeaders();
User user2 = responseEntity1.getBody();
// 3-exchange()
RequestEntity requestEntity = RequestEntity.get(new URI(uri)).build();
ResponseEntity responseEntity2 = this.restTemplate.exchange(requestEntity, User.class);
User user3 = responseEntity2.getBody();
(2)发送POST请求(postForObject()、postForEntity()、exchange())

// 1-postForObject()

User user1 = this.restTemplate.postForObject(uri, user, User.class);
// 2-postForEntity()
ResponseEntity responseEntity1 = this.restTemplate.postForEntity(uri, user, User.class);
// 3-exchange()
RequestEntity requestEntity = RequestEntity.post(new URI(uri)).body(user);
ResponseEntity responseEntity2 = this.restTemplate.exchange(requestEntity, User.class);
(3)设置HTTP Header信息
//1-postForObject()
User user1 = this.restTemplate.postForObject(uri, user, User.class);
// 2-postForEntity()
ResponseEntity responseEntity1 = this.restTemplate.postForEntity(uri, user, User.class);
// 3-exchange()
RequestEntity requestEntity = RequestEntity.post(new URI(uri)).body(user);
ResponseEntity responseEntity2 = this.restTemplate.exchange(requestEntity, User.class);
(4)设置HTTP Header信息 ##
@Configuration
public class RestClientConfig {
@Bean
public ClientHttpRequestFactory httpRequestFactory() {
return new HttpComponentsClientHttpRequestFactory(httpClient());
}
@Bean
public RestTemplate restTemplate() {
return new RestTemplate(httpRequestFactory());
}
@Bean
public HttpClient httpClient() {
Registry registry = RegistryBuilder. create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", SSLConnectionSocketFactory.getSocketFactory())
.build();
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);
connectionManager.setMaxTotal(5);
connectionManager.setDefaultMaxPerRoute(5);
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(8000)
.setConnectTimeout(8000)
.setConnectionRequestTimeout(8000)
.build();

return HttpClientBuilder.create()

.setDefaultRequestConfig(requestConfig)
.setConnectionManager(connectionManager)
.build();
}
}

转载于:https://www.cnblogs.com/dibinbin/p/9212665.html

你可能感兴趣的文章
Http Request
查看>>
zepto和jquery的区别,zepto的不同使用8条小结
查看>>
sublime text 2安装及使用
查看>>
开源搜索引擎评估:lucene sphinx elasticsearch
查看>>
[转载]调整虚拟内存
查看>>
程序设计第二次作业<2>
查看>>
c++异常捕获
查看>>
Map集合中value()方法与keySet()、entrySet()区别 《转》
查看>>
c#读取xml文件配置文件Winform及WebForm-Demo具体解释
查看>>
ApiController使用Session验证出现Null解决方案
查看>>
【剑指offer】包括min函数的栈
查看>>
点云匹配和ICP算法概述
查看>>
ACdream 1083 有向无环图dp
查看>>
大众点评的实时计算
查看>>
Thrift反序列化导致OOM(转)
查看>>
【转载】谷歌酝酿将苹果Swift作为安卓APP主要开发语言
查看>>
自定义用户登录,会话保持,登录后自动跳转原页面
查看>>
Quartz的cronTrigger表达式
查看>>
李洪强经典iOS面试题11
查看>>
Ubuntu 14 常用“快捷键”,Ctrl + Alt + F1 进入终端,按 Ctrl + Alt + F7 回到界面
查看>>