2016-03-31 3 views

ответ

0
 HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
     interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
     //设置缓存路径 
     File httpCacheDirectory = new File(MyApplication.mContext.getCacheDir(), "responses"); 
     //设置缓存 10M 
     Cache cache = new Cache(httpCacheDirectory, 10 * 1024 * 1024); 
     OkHttpClient client = null; 

     final TrustManager[] trustManager = new TrustManager[]{ 
       new X509TrustManager() { 
        @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 { 

        } 

        @Override 
        public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
         return new java.security.cert.X509Certificate[0]; 
        } 
       } 
     }; 
     try { 
      SSLContext sslContext = SSLContext.getInstance("SSL"); 
      sslContext.init(null, trustManager, new SecureRandom()); 
      SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory(); 
      client = new OkHttpClient.Builder().addInterceptor(interceptor).sslSocketFactory(sslSocketFactory).addInterceptor(new BaseInterceptor()).hostnameVerifier(new HostnameVerifier() { 
       @Override 
       public boolean verify(String hostname, SSLSession session) { 
        return true; 
       } 
      }).cache(cache).build(); 
     } catch (NoSuchAlgorithmException e) { 
      e.printStackTrace(); 
     } catch (KeyManagementException e) { 
      e.printStackTrace(); 
     } 
     _instance = new Retrofit.Builder().baseUrl(ConstantUtils.HOST) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .addCallAdapterFactory(RxJavaCallAdapterFactory.create()).client(client).build(); 
    } 
    return _instance.create(ICommonService.class); 

  RetrofitUtils.generateCommonService().down().subscribeOn(Schedulers.newThread()) 
      .observeOn(AndroidSchedulers.mainThread()) 
      .subscribe(new Subscriber<ResponseBody>() { 
       @Override 
       public void onCompleted() { 

       } 

       @Override 
       public void onError(Throwable e) { 
        LogUtils.e("errorrrrrrrrrr"); 

       } 

       @Override 
       public void onNext(ResponseBody responseBody) { 
        BufferedOutputStream bos = null; 
        FileOutputStream fos = null; 
        try { 
         byte[] by = responseBody.bytes(); 
         File file = new File(BaseApplication.getContext().getFilesDir(), "download.apk"); 
         fos = new FileOutputStream(file); 
         bos = new BufferedOutputStream(fos); 
         bos.write(by); 
         LogUtils.e("length=======>",file.length()+""); 
         mainView.updateApk(file); 
        }catch (IOException e){ 
         e.printStackTrace(); 
        }finally { 
         if (bos != null) 
         { 
          try 
          { 
           bos.close(); 
          } 
          catch (IOException e) 
          { 
           e.printStackTrace(); 
          } 
         } 
         if (fos != null) 
         { 
          try 
          { 
           fos.close(); 
          } 
          catch (IOException e) 
          { 
           e.printStackTrace(); 
          } 
         } 
        } 
        LogUtils.e("success========="); 
       } 
      }); 
Смежные вопросы