android okhttp和webview session共享

莫道桑榆晚,为霞尚满天。这篇文章主要讲述android okhttp和webview session共享相关的知识,希望能为你提供帮助。

public static OkHttpClient get(Context context){ OkHttpClient.Builder builder = new OkHttpClient.Builder() .cookieJar(new WebViewCookieHandler(context)) .connectTimeout(15, TimeUnit.SECONDS) .writeTimeout(20, TimeUnit.SECONDS) .readTimeout(30, TimeUnit.SECONDS) .cache(new Cache(context.getCacheDir(), Config.REQUEST_CACHE_SIZE)); return builder.build(); }

public class WebViewCookieHandler implements CookieJar { private CookieManager mCookieManager = CookieManager.getInstance(); public Context context; public WebViewCookieHandler(Context context){ this.context = context; }@Override public void saveFromResponse(HttpUrl url, List< Cookie> cookies) { mCookieManager.setAcceptCookie(true); String urlString = url.toString(); for (Cookie cookie : cookies) { mCookieManager.setCookie(urlString, cookie.toString()); } if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP){ CookieSyncManager.getInstance().sync(); }else{ mCookieManager.flush(); } }@Override public List< Cookie> loadForRequest(HttpUrl url) { String urlString = url.toString(); String cookiesString = mCookieManager.getCookie(urlString); if (cookiesString != null & & !cookiesString.isEmpty()) { String[] cookieHeaders = cookiesString.split("; "); List< Cookie> cookies = new ArrayList< > (cookieHeaders.length); for (String header : cookieHeaders) { cookies.add(Cookie.parse(url, header)); } return cookies; } return Collections.emptyList(); }

【android okhttp和webview session共享】 

    推荐阅读