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

  • 相关阅读:
    Python——python读取html实战,作业7(python programming)
    Python——python读取html实战,作业7(python programming)
    Python——python读取xml实战,作业6(python programming)
    Python——python读取xml实战,作业6(python programming)
    二分查找(c & c++)
    大型站点技术架构(八)--站点的安全架构
    Android MTP 文件浏览Demo
    HDU2037 事件排序问题
    折腾开源WRT的AC无线路由之路-3
    启动VIP报CRS-1028/CRS-0223致使VIP状态为UNKNOWN故障分析与解决
  • 原文地址:https://www.cnblogs.com/dibinbin/p/9212665.html
Copyright © 2011-2022 走看看