账号登录时候得到它的状态值
SharedPreferences sharedPreferences = getSharedPreferences(“user”,MODE_PRIVATE);
sharedPreferences.edit().putString(“userId”,user.getResult().getUserId()+"").putString(“sessionId”,user.getResult().getSessionId()).putString(“userName”,user.getResult().getNickName()).commit();
//构造方法
public RetrofitUtils(){
//自定义日至拦截器
client=new OkHttpClient.Builder()
.writeTimeout(2000, TimeUnit.SECONDS)
.readTimeout(2000,TimeUnit.SECONDS)
.connectTimeout(2000,TimeUnit.SECONDS)
.retryOnConnectionFailure(true)
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
SharedPreferences sharedPreferences = App.getApplication().getSharedPreferences("user",Context.MODE_PRIVATE);
String userId = sharedPreferences.getString("userId", "");
String sessionId = sharedPreferences.getString("sessionId", "");
Log.i("TTTT",userId);
Log.i("TTTT",sessionId);
//重新构造请求
Request.Builder builder = request.newBuilder();
//把原来的请求参数原样的放进去
builder.method(request.method(),request.body());
//添加特殊的userid sessionid
if(!TextUtils.isEmpty(userId)&&!TextUtils.isEmpty(sessionId)){
builder.addHeader("userId",userId);
builder.addHeader("sessionId",sessionId);
}
Request request_ = builder.build();
return chain.proceed(request_);
}
})
.build();
Retrofit retrofit = new Retrofit.Builder()
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.baseUrl(BASE_URL)
.client(client)
.build();
baseApis=retrofit.create(BaseApis.class);
}
需要在app里面进行配置上下文
package com.example.project.app;
import android.app.Application;
import android.content.Context;
import com.facebook.drawee.backends.pipeline.Fresco;
public class App extends Application {
public static Context mContext;
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
mContext = getApplicationContext();
}
public static Context getApplication(){
return mContext;
}
}