package com.yuyh.sprintnba.http.okhttp; import android.text.TextUtils; import com.yuyh.sprintnba.app.Constant; import com.yuyh.sprintnba.utils.SettingPrefUtils; import com.yuyh.library.utils.log.LogUtils; import java.io.IOException; import java.net.URLEncoder; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; /** * Retrofit2 Cookie拦截器。用于保存和设置Cookies */ public class CookieInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request original = chain.request(); if (!TextUtils.isEmpty(SettingPrefUtils.getCookies()) && !original.url().toString().contains("loginUsernameEmail")) { Request request = original.newBuilder() .addHeader("Cookie", "u=" + SettingPrefUtils.getCookies() + ";") // 不能转UTF-8 .build(); LogUtils.d("okhttplog: set header cookie:" + SettingPrefUtils.getCookies()); LogUtils.d("okhttplog: set header cookie:" + URLEncoder.encode(SettingPrefUtils.getCookies())); return chain.proceed(request); } else { for (String header : chain.proceed(original).headers("Set-Cookie")) { if (header.startsWith("u=")) { String cookie = header.split(";")[0].substring(2); LogUtils.d("okhttplog: add cookie:" + cookie); if (!TextUtils.isEmpty(cookie)) { Constant.Cookie = cookie; SettingPrefUtils.saveCookies(cookie); } } } } return chain.proceed(original); } }