上篇详细描述了自定义ca证书的步骤以及浏览器作为客户端和java作为客户端的使用方法。
但是之前的java客户端使用代码还存在一定的问题:
首先,之前的客户端根证书是在代码外部使用keytool安装到jdk证书库,次数多了就显得麻烦;
其次,之前的代码只能支持域名访问,这样没有真实域名时就必须更改host文件;
于是通过查找网络资料修改之后,便有了新的操作方式,使得java客户端可以支持ip访问https,同时不用直接侵入jdk。
http请求有多种框架,java常用的可能就是httpclient,而目前公司安卓那边使用的是okhttp,因此除了尝试我所熟悉的httpclient之外,也做了okhttp在java环境下的尝试。
以下代码基本来自网络,由于搜索资料过多,已经无法找到原出处。
import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.HttpURLConnection; import java.URL; import java.security.KeyStore; import CertificateException; import X509Certificate; import java.util.Map; import javax.ssl.HttpsURLConnection; import javax.ssl.KeyManagerFactory; import javax.ssl.SSLContext; import javax.ssl.SSLSession; import javax.ssl.SSLSocketFactory; import javax.ssl.TrustManager; import javax.ssl.TrustManagerFactory; import javax.ssl.X509TrustManager; /*** @Description:TODO类描述* @since JDK 1.8* @author tuzongxun* @Email 1160569243@qq* @version: v1.0.0* @date: 2019年4月9日 下午2:43:35*/ public class CaTest {// private String serverUrl = "";private String serverUrl = "192.168.0.205";private SSLSocketFactory sslFactory = null;/*** @author: tuzongxun* @date: 2019年4月9日 下午2:42:03
*/public void run() {try {HttpURLConnection connection = doHttpRequest(serverUrl, "GET", "", null);int responseCode = getResponseCode(connection);
本文发布于:2024-02-01 16:59:11,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170677795038112.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |