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)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java數(shù)組轉(zhuǎn)List及Stream的基本方法使用方法
Java?的?Stream?流操作是一種簡(jiǎn)潔而強(qiáng)大的處理集合數(shù)據(jù)的方式,允許對(duì)數(shù)據(jù)進(jìn)行高效的操作,如過濾、映射、排序和聚合,這篇文章主要介紹了Java數(shù)組轉(zhuǎn)List及Stream的基本方法使用教程,需要的朋友可以參考下2024-08-08
SpringBoot+WebMagic+MyBaties實(shí)現(xiàn)爬蟲和數(shù)據(jù)入庫的示例
WebMagic是一個(gè)開源爬蟲框架,本項(xiàng)目通過在SpringBoot項(xiàng)目中使用WebMagic去抓取數(shù)據(jù),最后使用MyBatis將數(shù)據(jù)入庫。具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
Java Char的簡(jiǎn)單工具類CharUtil分享
下面小編就為大家分享一篇Java Char的簡(jiǎn)單工具類CharUtil,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
關(guān)于mybatis-plus-generator的簡(jiǎn)單使用示例詳解
在springboot項(xiàng)目中集成mybatis-plus是很方便開發(fā)的,最近看了一下plus的文檔,簡(jiǎn)單用一下它的代碼生成器,接下來通過實(shí)例代碼講解關(guān)于mybatis-plus-generator的簡(jiǎn)單使用,感興趣的朋友跟隨小編一起看看吧2024-03-03
idea新建Springboot項(xiàng)目,設(shè)置默認(rèn)maven和jdk版本方式
這篇文章主要介紹了idea新建Springboot項(xiàng)目,設(shè)置默認(rèn)maven和jdk版本方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Java中tomcat memecached session 共享同步問題的解決辦法
這篇文章主要介紹了Java中tomcat memecached session 共享同步問題的解決辦法的相關(guān)資料,需要的朋友可以參考下2015-10-10
Java利用HttpClient模擬POST表單操作應(yīng)用及注意事項(xiàng)
本文主要介紹JAVA中利用HttpClient模擬POST表單操作,希望對(duì)大家有所幫助。2016-04-04
如何使用spring-ws發(fā)布webservice服務(wù)
文章介紹了如何使用Spring-WS發(fā)布Web服務(wù),包括添加依賴、創(chuàng)建XSD文件、生成JAXB實(shí)體、配置Endpoint、啟動(dòng)服務(wù)等步驟,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-11-11
Jmeter參數(shù)化實(shí)現(xiàn)方法及應(yīng)用實(shí)例
這篇文章主要介紹了Jmeter參數(shù)化實(shí)現(xiàn)方法及應(yīng)用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08

