精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

android httpClient 支持HTTPS的訪問方式

移動開發 Android
項目中Android https請求地址遇到了這個異常,javax.net.ssl.SSLPeerUnverifiedException: No peer certificate,是SSL協議中沒有終端認證。

項目中Android https請求地址遇到了這個異常(無終端認證):
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate

是SSL協議中沒有終端認證。

沒有遇到過的問題,于是無奈的去找度娘。。。。。。。

看了不少大神的博客后得到的解決方案如下:

  1. /** 
  2.   * Post請求連接Https服務 
  3.   * @param serverURL  請求地址 
  4.   * @param jsonStr    請求報文 
  5.   * @return 
  6.   * @throws Exception 
  7.   */ 
  8.  public static synchronized String doHttpsPost(String serverURL, String jsonStr)throws Exception { 
  9.      // 參數 
  10.      HttpParams httpParameters = new BasicHttpParams(); 
  11.      // 設置連接超時 
  12.      HttpConnectionParams.setConnectionTimeout(httpParameters, 3000); 
  13.      // 設置socket超時 
  14.      HttpConnectionParams.setSoTimeout(httpParameters, 3000); 
  15.      // 獲取HttpClient對象 (認證) 
  16.      HttpClient hc = initHttpClient(httpParameters); 
  17.      HttpPost post = new HttpPost(serverURL); 
  18.      // 發送數據類型 
  19.      post.addHeader("Content-Type""application/json;charset=utf-8"); 
  20.      // 接受數據類型 
  21.      post.addHeader("Accept""application/json"); 
  22.      // 請求報文 
  23.      StringEntity entity = new StringEntity(jsonStr, "UTF-8"); 
  24.      post.setEntity(entity); 
  25.      post.setParams(httpParameters); 
  26.      HttpResponse response = null
  27.      try { 
  28.          response = hc.execute(post); 
  29.      } catch (UnknownHostException e) { 
  30.          throw new Exception("Unable to access " + e.getLocalizedMessage()); 
  31.      } catch (SocketException e) { 
  32.          e.printStackTrace(); 
  33.      } 
  34.      int sCode = response.getStatusLine().getStatusCode(); 
  35.      if (sCode == HttpStatus.SC_OK) { 
  36.          return EntityUtils.toString(response.getEntity()); 
  37.      } else 
  38.          throw new Exception("StatusCode is " + sCode); 
  39.  } 
  40.  
  41.  private static HttpClient client = null
  42.  /** 
  43.   * 初始化HttpClient對象 
  44.   * @param params 
  45.   * @return 
  46.   */ 
  47.  public static synchronized HttpClient initHttpClient(HttpParams params) { 
  48.      if(client == null){ 
  49.          try { 
  50.              KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); 
  51.              trustStore.load(nullnull); 
  52.                
  53.              SSLSocketFactory sf = new SSLSocketFactoryImp(trustStore); 
  54.              //允許所有主機的驗證 
  55.              sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); 
  56.                
  57.              HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); 
  58.              HttpProtocolParams.setContentCharset(params, HTTP.UTF_8); 
  59.              // 設置http和https支持 
  60.              SchemeRegistry registry = new SchemeRegistry(); 
  61.              registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); 
  62.              registry.register(new Scheme("https", sf, 443)); 
  63.                
  64.              ClientConnectionManager ccm = new ThreadSafeClientConnManager(params, registry); 
  65.                
  66.              return new DefaultHttpClient(ccm, params); 
  67.          } catch (Exception e) { 
  68.              e.printStackTrace(); 
  69.              return new DefaultHttpClient(params); 
  70.          } 
  71.      } 
  72.      return client; 
  73.  } 
  74.  
  75. public static class SSLSocketFactoryImp extends SSLSocketFactory { 
  76.      final SSLContext sslContext = SSLContext.getInstance("TLS"); 
  77.  
  78.      public SSLSocketFactoryImp(KeyStore truststore) 
  79.              throws NoSuchAlgorithmException, KeyManagementException, 
  80.              KeyStoreException, UnrecoverableKeyException { 
  81.          super(truststore); 
  82.  
  83.          TrustManager tm = new X509TrustManager() { 
  84.              public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
  85.                  return null
  86.              } 
  87.  
  88.              @Override 
  89.              public void checkClientTrusted( 
  90.                      java.security.cert.X509Certificate[] chain, 
  91.                      String authType) 
  92.                      throws java.security.cert.CertificateException { 
  93.              } 
  94.  
  95.              @Override 
  96.              public void checkServerTrusted( 
  97.                      java.security.cert.X509Certificate[] chain, 
  98.                      String authType) 
  99.                      throws java.security.cert.CertificateException { 
  100.              } 
  101.          }; 
  102.          sslContext.init(nullnew TrustManager[] { tm }, null); 
  103.      } 
  104.  
  105.      @Override 
  106.      public Socket createSocket(Socket socket, String host, int port, 
  107.              boolean autoClose) throws IOException, UnknownHostException { 
  108.          return sslContext.getSocketFactory().createSocket(socket, host, 
  109.                  port, autoClose); 
  110.      } 
  111.  
  112.      @Override 
  113.      public Socket createSocket() throws IOException { 
  114.          return sslContext.getSocketFactory().createSocket(); 
  115.      } 
  116.  } 

run下,小手發抖的點到測試按鈕,深吸口氣,咦?沒反應。。。馬蛋的,工作線程忘記start(),唉,再次run下,終于的有點反應了,神奇的竟然沒有報之前的 javax.net.ssl.SSLPeerUnverifiedException: No peer certificate 的異常了。服務端的數據正常返回了。

分析問題:
HTTPS:超文本安全傳輸協議,和HTTP相比,多了一個SSL/TSL的認證過程,端口為443。

1.peer終端發送一個request,https服務端把支持的加密算法等以證書的形式返回一個身份信息(包含ca頒發機構和加密公鑰等)。

2.獲取證書之后,驗證證書合法性。

3.隨機產生一個密鑰,并以證書當中的公鑰加密。

4.request https服務端,把用公鑰加密過的密鑰傳送給https服務端。

5.https服務端用自己的密鑰解密,獲取隨機值。

6.之后雙方傳送數據都用此密鑰加密后通信。

HTTPS流程清楚后,問題也就明顯了,驗證證書時,無法驗證。

上面提供的解決方案就是添加默認信任全部證書。以此來通過接下來的通信。

但是,這樣問題是解決了。但是覺得還是不帶靠譜(信任全部證書有點危險)。繼續噼噼啪啪的網上搜索一番。又找到了一種解決方案,其過程大致這樣的:

1.瀏覽器訪問https地址,保存提示的證書到本地,放到android項目中的assets目錄。

2.導入證書,代碼如下。

3.把證書添加為信任。

  1. public static String requestHTTPSPage(Context context, String mUrl) { 
  2.         InputStream ins = null
  3.         String result = ""
  4.         try { 
  5.             ins = context.getAssets().open("my.key"); // 下載的證書放到項目中的assets目錄中 
  6.             CertificateFactory cerFactory = CertificateFactory.getInstance("X.509"); 
  7.             Certificate cer = cerFactory.generateCertificate(ins); 
  8.             KeyStore keyStore = KeyStore.getInstance("PKCS12""BC"); 
  9.             keyStore.load(nullnull); 
  10.             keyStore.setCertificateEntry("trust", cer); 
  11.   
  12.             SSLSocketFactory socketFactory = new SSLSocketFactory(keyStore); 
  13.             Scheme sch = new Scheme("https", socketFactory, 443); 
  14.             HttpClient mHttpClient = new DefaultHttpClient(); 
  15.             mHttpClient.getConnectionManager().getSchemeRegistry().register(sch); 
  16.   
  17.             BufferedReader reader = null
  18.             try { 
  19.                 HttpGet request = new HttpGet(); 
  20.                 request.setURI(new URI(mUrl)); 
  21.                 HttpResponse response = mHttpClient.execute(request); 
  22.                 if (response.getStatusLine().getStatusCode() != 200) { 
  23.                     request.abort(); 
  24.                     return result; 
  25.                 } 
  26.   
  27.                 reader = new BufferedReader(new InputStreamReader(response 
  28.                         .getEntity().getContent())); 
  29.                 StringBuffer buffer = new StringBuffer(); 
  30.                 String line = null
  31.                 while ((line = reader.readLine()) != null) { 
  32.                     buffer.append(line); 
  33.                 } 
  34.                 result = buffer.toString(); 
  35.             } catch (Exception e) { 
  36.                 e.printStackTrace(); 
  37.             } finally { 
  38.                 if (reader != null) { 
  39.                     reader.close(); 
  40.                 } 
  41.             } 
  42.         } catch (Exception e) { 
  43.             e.printStackTrace(); 
  44.         } finally { 
  45.             try { 
  46.                 if (ins != null
  47.                     ins.close(); 
  48.             } catch (IOException e) { 
  49.                 e.printStackTrace(); 
  50.             } 
  51.         } 
  52.         return result; 

本文鏈接:http://my.oschina.net/u/1251149/blog/299010

責任編輯:chenqingxiang 來源: oschina
相關推薦

2017-10-23 13:20:37

2025-08-19 09:58:38

2010-09-13 12:19:03

2019-04-24 11:41:32

云計算開發數據中心

2018-11-30 16:17:28

HTTPS

2017-06-07 11:37:47

2018-10-29 15:20:03

2021-09-15 08:09:43

前端技術編程

2010-05-31 17:56:27

2024-08-02 08:21:52

Spring項目方式

2010-08-13 08:57:20

Flex主題

2021-07-14 15:01:14

智能電網技術物聯網

2022-02-23 12:35:12

LibreOffic無障礙輔助套件

2017-05-24 09:43:42

2015-04-20 10:45:43

2010-04-16 16:39:25

Oracle細粒度

2013-03-26 13:38:12

Android per

2023-05-10 10:37:41

谷歌ChromeCookie

2011-07-25 17:50:42

PostgreSQLODBC

2010-03-16 11:07:19

ArrayiPhone應用交付
點贊
收藏

51CTO技術棧公眾號

欧美中文字幕在线视频| 欧美在线三级电影| 成人免费在线看片| 无码人妻精品一区二区50| 欧美日韩色图| 精品久久久久久久久久久久久久久| 男人天堂a在线| 加勒比一区二区三区在线| 麻豆久久久久久| 国内精品久久久久久久久| 亚洲精品色午夜无码专区日韩| 热久久久久久| 丁香五六月婷婷久久激情| 色一情一乱一伦一区二区三欧美| 国产福利第一视频| 久久精品网址| 欧美激情久久久久| 中文字幕网站在线观看| 99国产精品免费网站| 欧美性xxxxxxxx| 成人毛片一区二区| 成人av福利| 国产喂奶挤奶一区二区三区| 成人国产亚洲精品a区天堂华泰| 成年人免费看毛片| 岛国片在线免费观看| 国产视频三级在线观看播放| 国产成人av一区| 国产精品久久久久久久久久 | 一区精品在线观看| 日韩香蕉视频| 欧美精品一区三区| 成人午夜免费影院| 欧美日韩国产传媒| 精品亚洲国产视频| 国产人妻黑人一区二区三区| 欧美黄色网络| 欧美视频你懂的| 国产日韩一区二区在线| 丁香影院在线| 一区二区高清在线| 欧美xxxx吸乳| 成人免费网址| 中文字幕综合网| 亚洲欧洲三级| 91这里只有精品| 中文在线一区二区| 国产午夜精品一区二区三区视频 | 在线播放91灌醉迷j高跟美女| 国产极品尤物在线| 9lporm自拍视频区在线| 亚洲精品免费在线| 法国空姐在线观看免费| 免费网站成人| 国产精品久久久久影院亚瑟 | 午夜精品久久久久99热蜜桃导演| 日韩在线视频免费观看| 在线看片中文字幕| 日本激情一区| 精品国产一区二区在线| 亚洲欧洲综合网| 91影院成人| 久久亚洲精品一区| 日韩成人毛片视频| 欧美激情五月| 久久久欧美一区二区| 国产精品suv一区二区69| 一区在线观看| 欧美资源在线观看| 高潮毛片又色又爽免费 | 色窝窝无码一区二区三区| 国产v综合v亚洲欧| 精品国产一区二区三区麻豆免费观看完整版 | 久久99国产精品麻豆| 国产欧美一区二区白浆黑人| 91在线公开视频| 国产在线乱码一区二区三区| 91九色在线观看| 亚洲AV无码成人片在线观看| hitomi一区二区三区精品| 另类视频在线观看+1080p| 精品999视频| 亚洲欧洲日产国产综合网| 无码人妻aⅴ一区二区三区日本| 亚洲综合图区| 精品久久久久久中文字幕| www.四虎成人| 亚洲精品66| 精品日产卡一卡二卡麻豆| 国产人妻人伦精品1国产丝袜| 欧美日韩国产高清电影| 九色精品美女在线| 国产精品视频免费播放| 久久国产精品无码网站| 国产精品一区二区免费| 二区三区在线| 亚洲三级在线播放| 狠狠爱免费视频| 亚洲精品三区| 日韩精品福利网站| 永久免费未视频| 中文日韩欧美| 91在线免费观看网站| 神马久久久久久久久久| 国产精品素人一区二区| 国产资源在线免费观看| 国产精品久久久久77777丨| 日韩欧美色综合| 久久久久久久久久久久久久久| 亚洲乱码在线| 国产精品成人观看视频国产奇米| 99久久国产免费| 国产欧美一区二区三区沐欲| 免费在线看黄色片| 成人免费一区| 精品视频在线播放免| 一起操在线播放| 日韩精品视频网站| 国产免费一区二区三区| 欧美激情免费| 色悠悠亚洲一区二区| 中文字幕一区二区三区人妻在线视频| 国产探花一区| 2019中文字幕免费视频| 99免费在线视频| 国产欧美日韩久久| 成人在线免费观看av| 国产精选久久| 久久韩剧网电视剧| 亚洲性猛交富婆| 久久久99久久精品欧美| 丰满少妇大力进入| 日韩欧美另类中文字幕| 日韩一中文字幕| 精品成人无码久久久久久| 99免费精品视频| 成人免费播放器| 视频一区中文字幕精品| 久久久成人av| 一区二区精品视频在线观看| 国产欧美一区二区三区沐欲| 免费观看日韩毛片| 麻豆成人入口| 欧美性做爰毛片| 亚洲av成人精品日韩在线播放| 亚洲综合无码一区二区| 又黄又爽又色的视频| 亚洲一区二区三区| 亚洲在线www| 羞羞视频在线观看免费| 91精品国产91久久久久久一区二区| 99自拍偷拍视频| 久久国产生活片100| 中文字幕精品一区日韩| 超碰国产精品一区二页| 久久精品视频在线播放| 国产精品视频第一页| 亚洲色图.com| 免费不卡的av| 亚洲免费影院| 欧美午夜精品理论片a级大开眼界| 伊人成综合网站| 国产亚洲成av人片在线观看桃| 国产性生活视频| 国产精品欧美综合在线| 超碰中文字幕在线观看| 韩日成人在线| 免费国产一区二区| 播放一区二区| 久久国产精品久久久久| 成人毛片在线精品国产| 欧美日韩国产在线播放| 色噜噜日韩精品欧美一区二区| 日韩精品亚洲一区| 中文字幕av导航| 精品视频一区二区三区| 久久久久久综合网天天| 天堂91在线| 欧洲亚洲精品在线| jjzzjjzz欧美69巨大| 久久精品国产清高在天天线| 欧美一级片免费观看| 欧美日韩尤物久久| www.日韩欧美| 手机看片1024国产| 一本一本大道香蕉久在线精品| 日韩精品无码一区二区三区久久久 | 99精品视频在线免费播放| 欧美成人h版在线观看| 亚洲精品国产精品国| 欧美日韩亚洲网| 貂蝉被到爽流白浆在线观看| 国产一区不卡精品| 国产美女主播在线| 亚洲免费成人av在线| 91亚洲人电影| 国产在线看片免费视频在线观看| 亚洲欧美在线播放| 91高潮大合集爽到抽搐| 亚洲成精国产精品女| 久久av无码精品人妻系列试探| 久久成人av少妇免费| 国产91沈先生在线播放| 亚洲a级精品| 大波视频国产精品久久| 国产精品av一区二区三区 | 粉嫩av蜜桃av蜜臀av| 久久精品理论片| 欧洲精品一区二区三区久久| 先锋影音国产精品| 国产精品初高中精品久久| 日本韩国欧美| 欧美日韩不卡合集视频| 国产三级视频在线| 欧美第一区第二区| 中文字幕视频二区| 五月婷婷综合网| 久久精品这里只有精品| 久久精品人人做人人爽人人| 国产成人av免费观看| 日欧美一区二区| 黄色免费视频大全| 中文字幕一区二区三区欧美日韩| 久久久精品国产一区二区三区| 亚洲福利影视| 国产美女精品免费电影| 日本黄色免费在线| 九九热这里只有在线精品视| 成人动漫在线免费观看| 精品毛片乱码1区2区3区| 国产精品久久久久久久免费| 色呦呦日韩精品| 久草视频中文在线| 中文字幕一区二区三区在线不卡| 一级黄色性视频| 波多野洁衣一区| 久久精品久久99| 美女免费视频一区二区| 九一精品在线观看| 99视频+国产日韩欧美| av电影一区二区三区| 欧美日韩久久精品| 欧美一级二级三级| 色婷婷av一区二区三区丝袜美腿| 91久久久久久久久| 国产精品欧美一区二区三区不卡| 国产精品日韩在线| 日韩成人高清| 欧美伊久线香蕉线新在线| 精精国产xxxx视频在线播放| 欧美激情亚洲国产| 午夜伦理大片视频在线观看| 色视频www在线播放国产成人| 91在线品视觉盛宴免费| 国产一区二区动漫| jizz在线观看| 亚洲色图偷窥自拍| 电影av一区| 色偷偷综合社区| 2017亚洲天堂1024| 久久影院模特热| 影院在线观看全集免费观看| 久久av在线播放| 在线看女人毛片| 国内精品免费午夜毛片| 91九色porn在线资源| 午夜剧场成人观在线视频免费观看| 日本成人不卡| 91成人国产在线观看| 老色鬼在线视频| 欧美亚洲一区在线| 中文在线免费二区三区| 国产精品亚洲网站| 九七影院97影院理论片久久| 国产在线拍揄自揄视频不卡99| 国产成人亚洲一区二区三区| 国产精品福利网站| 在线观看欧美| av在线不卡一区| 久久电影在线| 亚洲欧洲一区二区在线观看| 欧美顶级大胆免费视频| 国产高潮呻吟久久久| 影音先锋日韩在线| 男人天堂1024| 免费人成精品欧美精品| 亚洲自拍第三页| 粉嫩av亚洲一区二区图片| 天天躁日日躁aaaxxⅹ| 国产欧美精品一区二区色综合 | 在线精品国产| 国产精品12345| 欧美aaa在线| 影音先锋资源av| 久久久亚洲欧洲日产国码αv| 国产精品久久久视频| 亚洲精品国产精华液| www.久久久久久久| 欧美精品国产精品| 亚洲 欧美 自拍偷拍| 亚洲天堂av在线免费观看| 欧美人与禽猛交乱配| 国产成人精品视频在线| 精品一区二区三区亚洲| 欧美亚洲丝袜| 影音先锋日韩在线| 欧美成人精品欧美一级乱| 精品中文字幕一区二区小辣椒| 国产大学生视频| 亚洲国产成人在线| 精品一区二区三区四| 色狠狠一区二区三区香蕉| 东京干手机福利视频| 在线看欧美日韩| av资源在线| 91影视免费在线观看| 外国成人在线视频| 国产片侵犯亲女视频播放| 美女视频黄 久久| 免费中文字幕av| 国产精品另类一区| 日本中文字幕第一页| 日韩午夜精品视频| 99青草视频在线播放视| 国产第一区电影| 久久综合五月婷婷| 国产精品88久久久久久妇女| 蜜臀久久久久久久| 国产乱了高清露脸对白| 亚洲欧美日韩综合aⅴ视频| 成人免费一级片| 亚洲精品福利在线观看| 国产亚av手机在线观看| 成人黄色片在线| 波多野结衣在线播放一区| 欧美亚洲黄色片| 成人免费黄色大片| 欧美一区免费观看| 欧美三级日韩在线| 在线国产情侣| 国产国语刺激对白av不卡| 农村少妇一区二区三区四区五区| 999一区二区三区| 国产一区视频在线看| 日本黄色激情视频| 色婷婷亚洲精品| 国产在线观看黄| 欧美中文字幕在线播放| 日韩成人一级| 韩国一区二区av| 久久久一区二区三区捆绑**| 国产成人精品亚洲男人的天堂| 精品福利在线导航| 羞羞的网站在线观看| 5g国产欧美日韩视频| 欧美精品午夜| 四虎永久免费观看| 亚洲综合一区二区三区| 韩国中文字幕hd久久精品| 九九热最新视频//这里只有精品| 欧美激情三级| 中文字幕无码精品亚洲资源网久久| 国产成人亚洲综合a∨婷婷| 欧美黄色aaa| 欧美一级夜夜爽| 91福利区在线观看| 激情小说综合网| 午夜综合激情| 成人无码精品1区2区3区免费看| 精品视频在线免费观看| 成人免费视频| 91丝袜脚交足在线播放| 欧美日韩一区二区高清| japanese在线观看| 色婷婷国产精品综合在线观看| 欧美理论在线观看| 国产成人精品一区| 一级毛片免费高清中文字幕久久网| 中文字幕亚洲影院| 亚洲一区二区三区影院| 毛片在线播放网址| 国产精品午夜一区二区欲梦| 久久影院一区| 污网站免费观看| 色网站国产精品| 免费av在线网站| 精品国产二区在线| 免费视频最近日韩| 欧美卡一卡二卡三| 亚洲欧美一区二区三区在线| 日韩毛片一区| 久久久无码中文字幕久...| 91丨九色丨尤物| 一本一道人人妻人人妻αv| 欧美日韩国产成人在线观看| 国内精品久久久久久久影视简单| 国产成人美女视频| 亚洲二区在线视频| 男女啪啪在线观看| 国产一级特黄a大片99|