定義配置的https的請求與使用HttpUtil實現的遠端請求

一、基於自定義配置的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; }}

定義配置的https的請求與使用HttpUtil實現的遠端請求

定義配置的https的請求與使用HttpUtil實現的遠端請求

定義配置的https的請求與使用HttpUtil實現的遠端請求

定義配置的https的請求與使用HttpUtil實現的遠端請求

二、使用HttpUtil實現遠端請求,使用的hutool依賴下的工具類

匯入依賴

cn。hutool hutool-all 4。5。18

定義配置的https的請求與使用HttpUtil實現的遠端請求

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

定義配置的https的請求與使用HttpUtil實現的遠端請求