1.
//读写拦截器
public Retorfit()
{
HttpLoggingInterceptor httpLoggingInterceptor=new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient.Builder builder=new OkHttpClient.Builder();
builder.connectTimeout(15,TimeUnit.SECONDS);
builder.readTimeout(15,TimeUnit.SECONDS);
builder.writeTimeout(15,TimeUnit.SECONDS);
//拦截器 存值 sessionid userid
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
//拿到请求
Request original=chain.request();
//取出保存的 userID,sessid
SharedPreferences sharedPreferences=App.getApplication().getSharedPreferences("spDemo",Context.MODE_PRIVATE);
String userId=sharedPreferences.getString("userId","");
String sessionId=sharedPreferences.getString("sessionId","");
//重新构造
Request.Builder requestBuilder=original.newBuilder();
//把原来请求的参数放进去
requestBuilder.method(original.method(),original.body());
//添加特殊的 userid sessionid
if(!TextUtils.isEmpty(userId)&&!TextUtils.isEmpty(sessionId))
{
requestBuilder.addHeader("userId",userId);
requestBuilder.addHeader("sessionId",sessionId);
}
//打包
Request request=requestBuilder.build();
//返回
return chain.proceed(request);
}
});
builder.retryOnConnectionFailure(true);
OkHttpClient client=builder.build();
Retrofit retrofit=new Retrofit.Builder()
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.baseUrl(BASE_URL)
.client(client)
.build();
baceApis=retrofit.create(BaceApis.class);
}
2.App
public class App extends Application {
private static Context mcontext;
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
mcontext=getApplicationContext();
}
public static Context getApplication()
{
return mcontext;
}
}
3.主页面 登录成功.
//shaer
sharedPreferences=getSharedPreferences("User",MODE_PRIVATE);
editor=sharedPreferences.edit();
if(loginBean.getMessage().equals("登录成功"))
{
Intent intent=new Intent(MainActivity.this,ShowActivity.class);
//把userId sessionId 传过来
SharedPreferences sharedPreferences=getSharedPreferences("spDemo",MODE_PRIVATE);
sharedPreferences.edit().putString("userId",loginBean.getResult().getUserId()).putString("sessionId",loginBean.getResult().getSessionId()).commit();
startActivity(intent);