Android HTTPS请求总结
生活随笔
收集整理的這篇文章主要介紹了
Android HTTPS请求总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
HttpClient
KeyStore keyStore; URI url = null; HttpGet req = null; try{//獲取asset文件夾下的證書AssetManager am = mContext.getAssets();InputStream ins = am.open("my.crt"); //證書格式轉換 IE 工具->internet->內容->證書 try {//讀取證書 CertificateFactory cerFactory = CertificateFactory.getInstance("X.509"); //證書工廠。此處指明證書的類型? Certificate cer = cerFactory.generateCertificate(ins);//創建一個證書庫,并將證書導入證書庫 keyStore = KeyStore.getInstance("PKCS12", "BC"); //問2 http://www.csdn.net/article/2015-01-06/2823434keyStore.load(null, null);keyStore.setCertificateEntry("trust", cer);} finally {ins.close();}//把咱的證書庫作為信任證書庫 SSLSocketFactory socketFactory = new SSLSocketFactory(keyStore);Scheme sch = new Scheme("https", socketFactory, 443);//完工 HttpClient mHttpClient = new DefaultHttpClient();mHttpClient.getConnectionManager().getSchemeRegistry().register(sch);url = new URI(gm.url+gm.param);//url = new URI(gm.url+gm.param); req = new HttpGet(url);HttpGet requestGet = new HttpGet(url);HttpResponse httpResponse = mHttpClient.execute(requestGet);if (httpResponse.getStatusLine().getStatusCode() == 200) {HttpEntity httpEntity = httpResponse.getEntity();result = EntityUtils.toString(httpEntity);result = result.replaceAll("\r", "");} }catch (Exception e){}
HttpsURLConnection
CertificateFactory cf = CertificateFactory.getInstance("X.509"); // From // https://www.washington.edu/itconnect/security/ca/load-der.crt InputStream caInput = mContext.getAssets().open("_.lianluo.com_bundle.crt"); //InputStream caInput = mContext.getAssets().open("nginx.crt"); Certificate ca; try {ca = cf.generateCertificate(caInput); } finally {caInput.close(); }// Create a KeyStore containing our trusted CAs String keyStoreType = KeyStore.getDefaultType(); KeyStore keyStore = KeyStore.getInstance(keyStoreType); keyStore.load(null, null); keyStore.setCertificateEntry("ca", ca);// Create a TrustManager that trusts the CAs in our KeyStore String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm(); TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm); tmf.init(keyStore);// Create an SSLContext that uses our TrustManager SSLContext context = SSLContext.getInstance("TLS"); context.init(null, tmf.getTrustManagers(), null);URL url = new URL(path); HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(); // urlConnection.setConnectTimeout(5 * 1000); urlConnection.setRequestMethod("GET"); // urlConnection.setSSLSocketFactory(context.getSocketFactory());InputStream in = urlConnection.getInputStream();if(urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK){return readStream(in); }
總結
以上是生活随笔為你收集整理的Android HTTPS请求总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P2P下载器项目
- 下一篇: (附源码)python电影院信息管理系统