Android httpClient 自定义Https
来源:互联网 发布:深圳海关待遇知乎 编辑:程序博客网 时间:2024/06/02 02:45
直接上代码:
private static HttpClient getHttpClient() { HttpClient client = new DefaultHttpClient(); InputStream ins = null; try { ins = DataApplication.getInstance().getAssets().open("tomcat.cer"); //下载的证书放到项目中的assets目录中// ins = DataApplication.getInstance().getResources().openRawResource(R.raw.tomcat); //下载的证书放到项目中的res/raw目录中 CertificateFactory cerFactory = CertificateFactory.getInstance("X.509"); Certificate cer = cerFactory.generateCertificate(ins); KeyStore keyStore = KeyStore.getInstance("PKCS12", "BC"); keyStore.load(null, null); keyStore.setCertificateEntry("trust", cer); SSLSocketFactoryEx socketFactory = new SSLSocketFactoryEx(keyStore); Scheme sch = new Scheme("https", socketFactory, 443); client.getConnectionManager().getSchemeRegistry().register(sch); client.getParams().setIntParameter(HttpConnectionParams.CONNECTION_TIMEOUT, HTTP_CONNECTION_TIMEOUT); client.getParams().setIntParameter(HttpConnectionParams.SO_TIMEOUT, SOCKET_CONNECTION_TIMEOUT); } catch (Exception e) { e.printStackTrace(); return new DefaultHttpClient(); } return client; }
static class SSLSocketFactoryEx extends SSLSocketFactory { SSLContext sslContext = SSLContext.getInstance("TLS"); public SSLSocketFactoryEx(KeyStore truststore) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException { super(truststore); TrustManager tm = new X509TrustManager() { @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted( java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException { } @Override public void checkServerTrusted( java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException { } }; sslContext.init(null, new TrustManager[]{tm}, null); } @Override public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, UnknownHostException { return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose); } @Override public Socket createSocket() throws IOException { return sslContext.getSocketFactory().createSocket(); } }
keytool -printcert -rfc -file srca.cer
有任何问题。联系方式:1808418098(qq、微信)
0 0
- Android httpClient 自定义Https
- android HttpClient 访问https
- Android httpClient 支持HTTPS
- Android 实现 HttpClient 请求Https
- [Android实例] Android 使用HttpClient访问https
- android 基于HttpClient的https请求
- android httpClient 支持HTTPS的访问方式
- android httpClient 支持HTTPS的访问方式
- Android:使用HttpClient访问HTTP/HTTPS服务器
- android httpClient 支持HTTPS的处理方式
- Android Https访问(HttpClient,Httpurlconnect,Okhttp)
- HTTPS HTTPClient
- httpclient https
- android请求https(二)使用HttpClient 请求https
- Android:Https跳过证书验证、Https使用证书、HttpClient、
- Android https 自定义 证书 问题
- Android进阶(三)android httpClient 支持HTTPS的访问方式
- Android在使用HttpClient访问https时认证策略
- 捕获崩溃异常并重启程序,上传崩溃日志到服务器
- java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/Str
- Java 排序之 冒泡排序
- 【Android】Glide结合Recyclerview(也适用于Listview)实现列表滑动的时候图片不加载,滑动停止的时候加载(已修正Listview部分以及排版)
- 进程、线程、多线程相关总结
- Android httpClient 自定义Https
- ssm框架下 tiles框架 的使用
- SpringBoot中自定义注解实现控制器访问次数限制
- eclipse部署java web程序报错:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Buil
- 【Python】 csv模块的使用
- Linux命令--关机重启
- HAWQ技术解析(三) —— 基本架构
- 安卓开发工具类-SharedPreferences
- 视觉同时定位与建图(vSLAM)