美文网首页
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