<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      安卓筆記俠

      專注安卓開發

      導航

      https遇到自簽名證書/信任證書

      對于CA機構頒發的證書Okhttp默認支持 可以直接訪問
      但是對于自定義的證書就不可以了(如:https ://kyfw.12306.cn/otn/), 需要加入Trust
      下面分兩部分來寫,一是信任所有證書,二是信任指定證書,訪問自簽名的網站

      一、信任所有證書

      1. 在你的module 下 build.gradule里添加

      dependencies {
      、、、
      compile 'com.zhy:okhttputils:2.6.2'
      、、、}
      

      2.新建MyApplication

      public class MyApplication extends Application {
          @Override
          public void onCreate() {
              super.onCreate();
              // 這就是信任所有證書
              HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(null,null, null);
              OkHttpClient okHttpClient = new OkHttpClient.Builder()
                          .connectTimeout(10000L, TimeUnit.MILLISECONDS)
                          .readTimeout(10000L, TimeUnit.MILLISECONDS)
                          .addInterceptor(new LoggerInterceptor("TAG"))
                          .hostnameVerifier(new HostnameVerifier() {
                              @Override
                              public boolean verify(String hostname, SSLSession session) {
                                  return true;
                              }
                          })
                          .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)
                          .build();
                  OkHttpUtils.initClient(okHttpClient);
              } catch (Exception e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
          }
      

      3.AndroidMainfest.xml

      //添加權限
       <uses-permission android:name="android.permission.INTERNET"></uses-permission>
          <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
      
          <application
              //將新建的MyApplication name添加進來
              android:name=".MyApplication"
              .....
      

      4.然后在需要請求網絡的地方

      public void getHttps(View view) {
              String url = "https://kyfw.12306.cn/otn/";
      
              OkHttpUtils
                      .get()
                      .url(url)
                      .build()
                      .execute(new StringCallback() {
                          @Override
                          public void onError(Call call, Exception e, int id) {
                              Log.e("TAG", "onError: " + e.toString());
                          }
      
                          @Override
                          public void onResponse(String response, int id) {
                              Log.e("TAG", "onResponse: " + response.toString());
                          }
                      });
          }
      

      二、自定義的證書 自簽名網站

      分兩種:1.直接使用網站證書;2.將證書轉為字符串

      1、直接使用網站證書####

      1.導出網站證書
      -- chrome瀏覽器方法:(其他瀏覽器請百度)
      --訪問 https://kyfw.12306.cn/otn/
      按F12
      --

       

      -- 詳細信息--復制到文件--下一步
      -- 選
       
       
      --下一步
      --選擇保存位置 填入文件名
       

      --下一步 --完成--確定
      2、將導出的證書 放在assets文件夾下,沒有就自己創建一個
       

      //使用  在Application里 
      HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(new InputStream[]{getAssets().open("srca.cer")}, null, null);
      

      ==========
      也可以不用證書 直接將證書轉為字符串 ,使用字符串

      2、將證書轉為字符串####

      兩種方式任選一種 直接使用證書 就不用這一步了
      代碼 http://download.csdn.net/download/eryhytkmgfhnghnjfghn/9834086

      1.在你的module 下 build.gradule里添加

      dependencies {
      、、、
      compile 'com.zhy:okhttputils:2.6.2'
      、、、}
      

      2.新建MyApplication

      public class MyApplication extends Application {
                //獲取12306網站證書,將證書中的內容提取出來,寫成字符串常量
      //不會提取內容 請百度
      //我的在asli是可以直接看到內容的
                  private String CER_12306 = "-----BEGIN CERTIFICATE-----\n" +
                  "MIICmjCCAgOgAwIBAgIIbyZr5/jKH6QwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCQ04xKTAn\n" +
                  "BgNVBAoTIFNpbm9yYWlsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRTUkNBMB4X\n" +
                  "DTA5MDUyNTA2NTYwMFoXDTI5MDUyMDA2NTYwMFowRzELMAkGA1UEBhMCQ04xKTAnBgNVBAoTIFNp\n" +
                  "bm9yYWlsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRTUkNBMIGfMA0GCSqGSIb3\n" +
                  "DQEBAQUAA4GNADCBiQKBgQDMpbNeb34p0GvLkZ6t72/OOba4mX2K/eZRWFfnuk8e5jKDH+9BgCb2\n" +
                  "9bSotqPqTbxXWPxIOz8EjyUO3bfR5pQ8ovNTOlks2rS5BdMhoi4sUjCKi5ELiqtyww/XgY5iFqv6\n" +
                  "D4Pw9QvOUcdRVSbPWo1DwMmH75It6pk/rARIFHEjWwIDAQABo4GOMIGLMB8GA1UdIwQYMBaAFHle\n" +
                  "tne34lKDQ+3HUYhMY4UsAENYMAwGA1UdEwQFMAMBAf8wLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDov\n" +
                  "LzE5Mi4xNjguOS4xNDkvY3JsMS5jcmwwCwYDVR0PBAQDAgH+MB0GA1UdDgQWBBR5XrZ3t+JSg0Pt\n" +
                  "x1GITGOFLABDWDANBgkqhkiG9w0BAQUFAAOBgQDGrAm2U/of1LbOnG2bnnQtgcVaBXiVJF8LKPaV\n" +
                  "23XQ96HU8xfgSZMJS6U00WHAI7zp0q208RSUft9wDq9ee///VOhzR6Tebg9QfyPSohkBrhXQenvQ\n" +
                  "og555S+C3eJAAVeNCTeMS3N/M5hzBRJAoffn3qoYdAO1Q8bTguOi+2849A==\n" +
                  "-----END CERTIFICATE-----";
          @Override
          public void onCreate() {
              super.onCreate();
              // 這就是信任所有證書   **和 一 的區別在這里**
              //這里  import okio.Buffer;   
              HttpsUtils.SSLParams sslParams = HttpsUtils.getSslSocketFactory(new InputStream[]{new Buffer().writeUtf8(CER_12306).inputStream()},null, null);
              OkHttpClient okHttpClient = new OkHttpClient.Builder()
                          .connectTimeout(10000L, TimeUnit.MILLISECONDS)
                          .readTimeout(10000L, TimeUnit.MILLISECONDS)
                          .addInterceptor(new LoggerInterceptor("TAG"))
                          .hostnameVerifier(new HostnameVerifier() {
                              @Override
                              public boolean verify(String hostname, SSLSession session) {
                                  return true;
                              }
                          })
                          .sslSocketFactory(sslParams.sSLSocketFactory, sslParams.trustManager)
                          .build();
                  OkHttpUtils.initClient(okHttpClient);
              } catch (Exception e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
          }
      

      然后同一的34

       

      代碼 https://github.com/DeadLine837/TestHttps

      參考 https://github.com/hongyangAndroid/okhttputils

        

      posted on 2018-06-26 11:27  安卓筆記俠  閱讀(9502)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲 国产 制服 丝袜 一区 | 国产99久久亚洲综合精品西瓜tv| 亚洲精品成人福利网站| 乱60一70归性欧老妇| 欧美亚洲国产一区二区三区| 亚洲中文字幕在线二页| 日韩精品一区二区三区激情视频| 无码一区二区三区中文字幕| 亚洲中文字幕日产无码成人片 | 国产又爽又黄又爽又刺激| 永久免费无码网站在线观看| 蜜桃无码一区二区三区| 国产亚洲精品成人aa片新蒲金| 国产麻传媒精品国产av| 人妻精品久久无码专区涩涩| 亚洲国产精品国自拍av| 麻豆a级片| 麻豆a级片| 91精品国产老熟女在线| 男人的天堂av社区在线| 法库县| 曝光无码有码视频专区| 九九热在线免费视频播放| 思思99热精品在线| 国产亚洲精品第一综合| 色综合色综合久久综合频道 | 亚洲区一区二区激情文学| 国产女人被狂躁到高潮小说| 亚洲免费成人av一区| 国产精品人成视频免费国产| 国产久9视频这里只有精品| 亚洲乱人伦中文字幕无码| 无码专区 人妻系列 在线| 国产一区二区日韩经典| 阿克陶县| 国产h视频在线观看| 日韩大片高清播放器| 久久精品国产99国产精品严洲| 成人午夜国产内射主播| 少妇人妻激情乱人伦| 久久热在线视频精品视频|