首先我们先创建一个App,完善请统一求头的操作,写完之后再清单文件里面注册一下
public class App extends Application {
private static Context context;
@Override
public void onCreate() {
super.onCreate();
context = this;
}
public static Context getContentInstance(){
return context;
}
}
然后我们就需要在登录成功的方法里面通过SharedPreferences保存用户的userId和sessionId
//在OnCreate里面进行初始化
SharedPreferences sp = getSharedPreferences("sp", Context.MODE_PRIVATE);
edit = sp.edit();
//在登录成功的方法中添加
LoginBean.ResultBean result1 = loginBean.getResult();
edit.putString("userId",result1.getUserId()+"");
edit.putString("sessionId",result1.getSessionId()+"");
edit.commit();
最后在工具类的自定义拦截器里面添加统一请求头,通过SharedPreferences得到用户的userId和sessionId
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
SharedPreferences sp = App.getContentInstance().getSharedPreferences("sp", Context.MODE_PRIVATE);
Request request = chain.request().newBuilder()
.addHeader("userId",sp.getString("userId",""))
.addHeader("sessionId",sp.getString("sessionId",""))
.build();
return chain.proceed(request);
}
})