美文网首页
android-持久化cookie

android-持久化cookie

作者: 778bc750a218 | 来源:发表于2019-03-11 11:38 被阅读0次

    import android.util.Log;

    import com.franmontiel.persistentcookiejar.ClearableCookieJar;

    import com.franmontiel.persistentcookiejar.PersistentCookieJar;

    import com.franmontiel.persistentcookiejar.cache.SetCookieCache;

    import com.franmontiel.persistentcookiejar.persistence.SharedPrefsCookiePersistor;

    import com.ramo.www.iwms.IwmsApplication;

    import com.ramo.www.iwms.NetBase.Interceptor.MyInterceptor;

    import okhttp3.OkHttpClient;

    import retrofit2.Retrofit;

    import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;

    import retrofit2.converter.gson.GsonConverterFactory;

    /**

    * 该类未网络基础类

    * 需要参数

    *      为IwmsApplication类中的BASE_url

    * 如未获取的到 Base_URL则网络基础对象返回null

    * 调用该对象必须先判空

    */

    public class NetBase {

    //    线程锁下的网络接口实例

        private volatile static Retrofitretrofit;

    //网络通讯基础实例

        private volatile static OkHttpClientokHttpClient;

    //    日志标志

        private  final StringTAG ="NetBase";

    /**

    * DCL初始化网络实例

    *  Lazy 初始化:是

    *  多线程线程安全:是

        * @return 基础网络接口实例

    */

        public static Retrofit getRetrofit() {

    if(retrofit ==null){

    synchronized (NetBase.class){

    new NetBase();

    return retrofit;

    }

    }

    return retrofit;

    }

    /**

    * 初始化网络实例

    */

        public NetBase(){

    try {

    //            添加cookie

                ClearableCookieJar cookieJar=new PersistentCookieJar(new SetCookieCache(),new SharedPrefsCookiePersistor(IwmsApplication.getContext()));

    //            网络基础类添加

                okHttpClient=new OkHttpClient.Builder().addInterceptor(new MyInterceptor()).cookieJar(cookieJar).build();

    //            获取基础连接ip地址

                String BASE_URL=IwmsApplication.BASE_URL;

    Log.d("test------------","NetBase: "+BASE_URL);

    //            初始化

                if(BASE_URL!=null){

    retrofit=new Retrofit.Builder()

    .baseUrl(BASE_URL)

    .client(okHttpClient)

    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())

    .addConverterFactory(GsonConverterFactory.create())

    .build();

    }else {

    Log.d(TAG,"NetBase: 创建网络基础失败!由于配置文件中的Host数据未读取到!");

    }

    }catch (Exception e){

    Log.d(TAG,"NetBase: 创建网络基础失败!build中途发生异常!");

    e.printStackTrace();

    }

    }

    }

    implementation 'com.github.franmontiel:PersistentCookieJar:v1.0.1'

    相关文章

      网友评论

          本文标题:android-持久化cookie

          本文链接:https://www.haomeiwen.com/subject/eopvpqtx.html