java中調(diào)用https請(qǐng)求忽略ssl證書認(rèn)證代碼示例
1、獲取httpclient,忽略證書認(rèn)證
public static CloseableHttpClient createSSLClientDefault() { try { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { // 信任所有證書 public boolean isTrusted(X509Certificate[] arg0, String arg1) throws CertificateException { return true; } }).build(); // 創(chuàng)建主機(jī)名驗(yàn)證器,用于繞過主機(jī)名驗(yàn)證 HostnameVerifier hostnameVerifier = NoopHostnameVerifier.INSTANCE; // 創(chuàng)建 SSL 連接套接字工廠,將自定義的 SSL 上下文和主機(jī)名驗(yàn)證器應(yīng)用于 HTTPS 連接 SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, hostnameVerifier); // 創(chuàng)建自定義的 CloseableHttpClient 實(shí)例,將 SSL 連接套接字工廠應(yīng)用于 HTTP 客戶端 return HttpClients.custom().setSSLSocketFactory(sslsf).build(); } catch (KeyManagementException e) { e.printStackTrace(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (KeyStoreException e) { e.printStackTrace(); } return HttpClients.createDefault(); }
2、使用put請(qǐng)求調(diào)用
public static String put(String url, Map<String, String> header, String param) throws Exception { String result = ""; StringEntity entity = new StringEntity(param, "utf-8"); CloseableHttpClient httpClient = null; try { httpClient = createSSLClientDefault(); HttpPut httpPut = new HttpPut(url); if (MapUtils.isNotEmpty(header)) { for (Map.Entry<String, String> entry : header.entrySet()) { httpPut.addHeader(entry.getKey(), entry.getValue()); } } if (entity != null) { entity.setContentType("application/json; charset=utf-8"); httpPut.setEntity(entity); } LogUtil.info("開始請(qǐng)求https接口:" + url ); HttpResponse httpResponse = httpClient.execute(httpPut); LogUtil.info("put請(qǐng)求返回httpResponse結(jié)果:" + httpResponse); HttpEntity resEntity = httpResponse.getEntity(); result = EntityUtils.toString(resEntity, "UTF-8"); LogUtil.info("put請(qǐng)求返回結(jié)果:" + result); } catch (Exception e) { throw e; } finally { if (httpClient != null) { httpClient.close(); } } return result; }
總結(jié)
到此這篇關(guān)于java中調(diào)用https請(qǐng)求忽略ssl證書認(rèn)證的文章就介紹到這了,更多相關(guān)java調(diào)用https請(qǐng)求忽略ssl認(rèn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java Spring使用hutool的HttpRequest發(fā)送請(qǐng)求的幾種方式
- java中的常見幾種發(fā)送http請(qǐng)求實(shí)例
- java?http請(qǐng)求獲取圖片并返回文件流給前端的方法步驟
- java實(shí)現(xiàn)調(diào)用http請(qǐng)求的五種常見方式
- Java中如何模擬HTTP請(qǐng)求并驗(yàn)證功能
- Java如何基于okhttp請(qǐng)求SSE接口流式返回詳解
- Java實(shí)現(xiàn)HttpGet請(qǐng)求傳body參數(shù)
- Java如何使用SSLContext請(qǐng)求https鏈接
- java的http請(qǐng)求工具對(duì)比分析
相關(guān)文章
Java使用ffmpeg和mencoder實(shí)現(xiàn)視頻轉(zhuǎn)碼
這篇文章主要為大家詳細(xì)介紹了Java使用ffmpeg和mencoder實(shí)現(xiàn)視頻轉(zhuǎn)碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12新版IDEA使用Spring Initializr創(chuàng)建工程的兩種方法
這篇文章主要介紹了新版IDEA使用Spring Initializr創(chuàng)建工程(兩種方法,官方工具和IDEA),文中通過代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2024-10-10MyBatis利用攔截器實(shí)現(xiàn)數(shù)據(jù)脫敏詳解
現(xiàn)代網(wǎng)絡(luò)環(huán)境中,敏感數(shù)據(jù)的處理是至關(guān)重要的,敏感數(shù)據(jù)包括個(gè)人身份信息、銀行賬號(hào)、手機(jī)號(hào)碼等,所以本文主要為大家詳細(xì)介紹了MyBatis如何利用攔截器實(shí)現(xiàn)數(shù)據(jù)脫敏,希望對(duì)大家有所幫助2023-11-11Java Annotation(Java 注解)的實(shí)現(xiàn)代碼
本篇文章介紹了,Java Annotation(Java 注解)的實(shí)現(xiàn)代碼。需要的朋友參考下2013-05-05關(guān)于spring.factories失效原因分析及解決
這篇文章主要介紹了關(guān)于spring.factories失效原因分析及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07