****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();
}
}

最新文章

  1. Java的修饰符
  2. CAD2010中文版安装问题记录
  3. SRM 595 DIV2 1000
  4. zju(8)串口通信实验
  5. sql server 向oracle导入表
  6. Qt之四种等待提示框
  7. form 和 ngModel
  8. Vue中method与computed的区别
  9. linux c 编程 ------ 头文件及其作用
  10. wait-for
  11. Quartz应用与集群原理分析
  12. 设计模式---策略模式Strategy(对象行为型)
  13. watch监控,对比新值和旧值做出相应判断
  14. Redis select选择数据库
  15. 运维堡垒机----Gateone
  16. poj 2007 Scrambled Polygon
  17. C#秘密武器之异步编程
  18. Chrome和IE的xss过滤器分析总结
  19. ACM-ICPC 2017 Asia Xi'an J LOL 【暴力 && 排列组合】
  20. asp.net 防止二次提交 以及UseSubmitBehavior属性-转

热门文章

  1. 力扣—gray code (格雷编码) python实现
  2. java延迟队列
  3. python--表达式形式的yield、面向过程编程、内置函数
  4. I2C_24c02实验
  5. Python基础教程(001)--前言
  6. 转载:@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  7. 优化问题及KKT条件
  8. LINUXE下执行php 定时任务
  9. MySQL-视图上进行增删改查
  10. SecureCRT key登录linux ssh设置