RestTemplate调用方法

// 上传
R result = HttpUtils.doUpload(url,data,fqPeList,HttpUtils.getHttpHeaders(httpHeads), R.class);

具体工具类

public class HttpUtils {

    private static RestTemplate restTemplate = createRestTemplate();

   // 处理https证书异常问题
    public static RestTemplate createRestTemplate() {
        try {
            SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
            // 信任所有
            TrustManager[] trustAllCerts = new TrustManager[]{
                    new X509TrustManager() {
                        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                            return null;
                        }
                        public void checkClientTrusted(
                                java.security.cert.X509Certificate[] certs, String authType) {
                        }
                        public void checkServerTrusted(
                                java.security.cert.X509Certificate[] certs, String authType) {
                        }
                    }
            };
            sslContext.init(null, trustAllCerts, new SecureRandom());
            HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
            requestFactory.setBufferRequestBody(false);
            requestFactory.setHttpClient(HttpClients.custom()
                    .setSSLContext(sslContext)
                    .setSSLHostnameVerifier(new NoopHostnameVerifier())
                    .build());
            return new RestTemplate(requestFactory);
        } catch (NoSuchAlgorithmException | KeyManagementException e) {
            throw new RuntimeException(e);
        }
    }

   // post请求
    public static <T> T doPost(String url, String data, HttpHeaders httpHeaders, Class<T> resultClazz){
        HttpEntity<Object> requestEntity = new HttpEntity<Object>(data, httpHeaders);
        ResponseEntity<T> responseEntity = restTemplate.postForEntity(url, requestEntity, resultClazz);
        T resut = responseEntity.getBody();
        return resut;
    }
	// get请求
    public static <T> T doGet(String url, HttpHeaders httpHeaders, Class<T> resultClazz){
        HttpEntity<Object> requestEntity = new HttpEntity<Object>(null, httpHeaders);
        ResponseEntity<T> responseEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, resultClazz);
        T resut = responseEntity.getBody();
        return resut;
    }
   // 获取http请求头
    public static HttpHeaders getHttpHeaders(Map<String,String> map){
        HttpHeaders requestHeaders = new HttpHeaders();
        if(!Objects.isNull(map) && map.size() > 0){
            map.forEach((key,value)->{
                requestHeaders.add(key,value);
            });
        }
        return requestHeaders;
    }
   //上传文件
    public static <T> T doUpload(String url, String data, List<File> files, HttpHeaders httpHeaders, Class<T> resultClazz){
        MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
        for(File file : files){
            body.add("files", new FileSystemResource(file));
        }
        body.add("content", data);
        HttpEntity<Object> requestEntity = new HttpEntity<Object>(body, httpHeaders);
        ResponseEntity<T> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, resultClazz);
        return responseEntity.getBody();
    }


}

处理证书异常问题依赖

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.13</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpcore</artifactId>
    <version>4.4.13</version>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值