• 使用restTemplate来访问https


    1、maven: <dependency>

            <groupId>org.apache.httpcomponents</groupId>

            <artifactId>httpclient</artifactId>

            <version>4.5.3</version>

          </dependency>

    2、@Configuration
    public class RestTemplateConfig {

    @Bean
    public RestTemplate restTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {
    TrustStrategy acceptingTrustStrategy = (X509Certificate[] chain, String authType) -> true;

    SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom()
    .loadTrustMaterial(null, acceptingTrustStrategy)
    .build();

    SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext);

    CloseableHttpClient httpClient = HttpClients.custom()
    .setSSLSocketFactory(csf)
    .build();

    HttpComponentsClientHttpRequestFactory requestFactory =
    new HttpComponentsClientHttpRequestFactory();

    requestFactory.setHttpClient(httpClient);
    RestTemplate restTemplate = new RestTemplate(requestFactory);
    return restTemplate;
    }
    }

    测试:

    public String getData()
    {
    //接口地址
    String url = "https://free-api.heweather.com/v5/forecast?city=CN101080101&key=5c043b56de9f4371b0c7f8bee8f5b75e";
    Map<String, Object> params = new HashMap<>();
    params.put("start_time", "20180824");
    params.put("end_time", "20180827");
    // RestTemplate restTemplate = new RestTemplate();//此处直接autowire即可,不用new
    HttpEntity httpEntity = new HttpEntity(params, null);
    ResponseEntity<String> request = restTemplate.postForEntity(url, httpEntity, String.class);
    return request.getBody().toString();
    }

  • 相关阅读:
    注册界面测试案例注意点
    linux常用命令
    linux常用快捷键总结
    2015.8.29某高级企业的在线笔试题
    图像处理------直方图均衡化
    “猫叫系统”开启了观察者模式
    Hua Wei 机试题目四---2014
    Hua Wei 机试题目三---2014
    Hua Wei 机试题目二
    Hua Wei 机试题目一
  • 原文地址:https://www.cnblogs.com/yuxifly828/p/9857521.html
Copyright © 2020-2023  润新知