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

  • 相关阅读:
    安装完QQ必须要删除掉的几个恐怖文件
    dede实战系统:更换成kindEditor编辑器
    PHP 5.4 中经 htmlspecialchars 转义后的中文字符串为空的问题
    DEDECMS图片集上传图片出错302的解决办法
    dedecms安装完成后登录后台出现空白
    OFV.msi是什么 为什么更新时无法安装
    CentOS 挂载NTFS分区的两种方法
    centos使用yum安装gcc
    NetBeans菜单栏字体太小了
    注入漏洞页
  • 原文地址:https://www.cnblogs.com/dibinbin/p/9212665.html
Copyright © 2011-2022 走看看