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

  • 相关阅读:
    Vue项目中全局过滤器的使用(格式化时间)
    vue-photo-preview 图片放大功能
    mongoimport导入json文件
    node后台,MongoDB作为数据库,vue前端获取数据并渲染
    JeasyUI,导出Excel
    EasyUI的textbox的disable ,readonly 用法
    EasyUI 中 Combobox里的onChange和onSelect事件的区别
    NullReferenceException 的可恨之处
    最新国家行政区划代码,来自国家统计局2018年底最新数据
    把旧系统迁移到.Net Core 2.0 日记 (20) --使用MiniProfiler for .NET
  • 原文地址:https://www.cnblogs.com/dibinbin/p/9212665.html
Copyright © 2011-2022 走看看