zoukankan      html  css  js  c++  java
  • Spring boot ----RestTemplate学习笔记

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

  • 相关阅读:
    Fiddler: Creation of interception certificate failed.
    ip地址检查正则表达式 兼容ipv4,ipv6
    母版页与子页的启动过程
    erlang 读取confg文件异常 could not start kernel pid error in config file
    转义字符 显示形式 转换成 实际形式 \\n to \n
    How to use epoll? A complete example in C
    Lex & Flex 词法分析器实践(未完,持续更新)
    我理解的爱情———柳智宇 (转载)
    Learning by doing 系列文章概述
    锁与RCU数据共享机制
  • 原文地址:https://www.cnblogs.com/dibinbin/p/9212665.html
Copyright © 2011-2022 走看看