日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java实现https免证书认证

發(fā)布時間:2024/4/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现https免证书认证 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

java實現(xiàn)https免證書認證

解決方法:

1.下載兩個包,httpclient-4.2.jar和httpcore-4.2.jar,復制以下代碼就可使用。

2.調(diào)用類代碼:

String httpOrgCreateTest = "https://url";

? ?Map<String,Object> createMap = new HashMap<String,Object>();

createMap.put("name","8888888");

createMap.put("num","11111");

createMap.put("array",list.toArray());

? ? String message = JSON.toJSONString(createMap);

? ? String result = HttpRequest.sendPost(httpOrgCreateTest, message);

3.HttpRequest類

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

import javax.net.ssl.SSLContext;

import javax.net.ssl.SSLSocketFactory;

import javax.net.ssl.TrustManager;

public class HttpRequest {

?

public static String sendPost(String url, String param) {

PrintWriter out = null;

BufferedReader in = null;

String result = "";

try {

?

// 創(chuàng)建SSLContext對象,并使用我們指定的信任管理器初始化

TrustManager[] tm = { new MyX509TrustManager() };

SSLContext sslContext = SSLContext.getInstance("SSL");

sslContext.init(null, tm, new java.security.SecureRandom());

?

// 從上述SSLContext對象中得到SSLSocketFactory對象

SSLSocketFactory ssf = sslContext.getSocketFactory();

?

// 打開和URL之間的連接

//URL realUrl = new URL(url);

URL realUrl= new URL(null, url, new sun.net.www.protocol.https.Handler());

HttpsURLConnection conn = (HttpsURLConnection) realUrl.openConnection();

conn.setSSLSocketFactory(ssf);

?

// 設(shè)置通用的請求屬性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("content-Type", "application/json");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 發(fā)送POST請求必須設(shè)置如下兩行

conn.setDoOutput(true);

conn.setDoInput(true);

// 獲取URLConnection對象對應(yīng)的輸出流

out = new PrintWriter(conn.getOutputStream());

// 發(fā)送請求參數(shù)

?

out.print(param);

// flush輸出流的緩沖

out.flush();

// 定義BufferedReader輸入流來讀取URL的響應(yīng)

in = new BufferedReader(

new InputStreamReader(conn.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

} catch (Exception e) {

System.out.println("發(fā)送 POST 請求出現(xiàn)異常!"+e);

e.printStackTrace();

}

//使用finally塊來關(guān)閉輸出流、輸入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOException ex){

ex.printStackTrace();

}

}

return result;

}

}

?

4.MyX509TrustManager類

import java.security.cert.CertificateException;

import java.security.cert.X509Certificate;

import javax.net.ssl.X509TrustManager;

public class MyX509TrustManager implements X509TrustManager{

@Override

public void checkClientTrusted(X509Certificate[] chain, String authType) throws

CertificateException {

?

}

@Override

public void checkServerTrusted(X509Certificate[] chain, String authType) throws

CertificateException {

?

}

@Override

public X509Certificate[] getAcceptedIssuers() {

return null;

}

}

轉(zhuǎn)載于:https://www.cnblogs.com/chinaifae/p/10188499.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的java实现https免证书认证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。