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

  • 相关阅读:
    华为超级应用联合创新计划启动,共同打造极致用户体验
    华为P20无敌拍摄能力开放 如何即刻获得?
    两千万次服务的背后,华为终端开放实验室到底做了什么?
    HUAWEI HiAI亮相华为开发者生态大会 助力应用AI开发实现加速度
    搜狐新闻APP是如何使用HUAWEI DevEco IDE快速集成HUAWEI HiAI Engine
    旅行助手:重新定义旅行
    世界更清晰,搜狐新闻客户端集成HUAWEI HiAI 亮相荣耀Play发布会!
    Android和设置alpha(图像)透明度
    Android应用开发欢迎界面不想显示最上面的LOGO
    聊天页面输入框和发送按钮的布局问题 Android
  • 原文地址:https://www.cnblogs.com/dibinbin/p/9212665.html
Copyright © 2011-2022 走看看