一、基于自定义配置的https
import org.apache.http.conn.ssl.NoopHostnameVerifier;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClientBuilder;import org.apache.http.impl.client.HttpClients;import org.apache.http.ssl.SSLContexts;import org.apache.http.ssl.TrustStrategy;import org.springframework.beans.factory.annotation.Value;import org.springframework.http.HttpEntity;import org.springframework.http.HttpHeaders;import org.springframework.http.ResponseEntity;import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;import org.springframework.stereotype.Component;import org.springframework.util.LinkedMultiValueMap;import org.springframework.web.client.RestTemplate;import javax.net.ssl.SSLContext;import java.security.KeyManagementException;import java.security.KeyStoreException;import java.security.NoSuchAlgorithmException;import java.util.List;/** * 远程请求的工具类 */@Componentpublic class RestTemplateUtil { private String remoteIp; @Value("${remote.ip}") public void setRemoteIp(String remoteIp) { this.remoteIp = remoteIp; } /*** * 配置https的请求 * @return * @throws NoSuchAlgorithmException * @throws KeyManagementException * @throws KeyStoreException */ public HttpComponentsClientHttpRequestFactory generateHttpRequestFactory() throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException { TrustStrategy acceptingTrustStrategy = (x509Certificates, authType) -> true; SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build(); SSLConnectionSocketFactory connectionSocketFactory = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier()); HttpClientBuilder httpClientBuilder = HttpClients.custom(); httpClientBuilder.setSSLSocketFactory(connectionSocketFactory); CloseableHttpClient httpClient = httpClientBuilder.build(); HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(); factory.setHttpClient(httpClient); return factory; } public String executePost(String url,LinkedMultiValueMap paramsMap) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException { String URL=remoteIp+url; RestTemplate restTemplate = new RestTemplate(generateHttpRequestFactory()); HttpHeaders headers = new HttpHeaders(); HttpEntity> request = new HttpEntity<>(paramsMap, headers); ResponseEntity response = restTemplate.postForEntity(URL, request , String.class ); String data=response.getBody(); return data; }}
二、使用HttpUtil实现远程请求,使用的hutool依赖下的工具类
导入依赖
cn.hutool hutool-all 4.5.18
import cn.hutool.http.HttpUtil;Map map=new HashMap<>();map.put("xxx","xx");map.put("xxx","xx");map.put("xxx","xx");map.put("xxx","xx");//远程请求的接口String url="https://127.0.0.1/xxxx/xxx/xxx";HttpUtil.createGet(url).form(map).timeout(1*60*1000).execute().body();
留言与评论(共有 0 条评论) “” |