public void processRequestCookie( HttpURLConnection connection, HashMap<String, String> cookieHeaders) { connection.setInstanceFollowRedirects(false); // ----------------------------------------------------------------------------------------------------- // 1、获取所有的Cookie集合 // ----------------------------------------------------------------------------------------------------- CookieStore cookieStore = CookieStoreHandler.getInstance(); List<Cookie> cookies = cookieStore.getCookies(); if (null == cookies || cookies.size() <= 0) { return; } // ----------------------------------------------------------------------------------------------------- // 2、获取CookieOrigin // ----------------------------------------------------------------------------------------------------- CookieOrigin cookieOrigin = getCookieOrigin(connection); // ----------------------------------------------------------------------------------------------------- // 3、过滤符合条件数据,获取符合的Cookie集合 // ----------------------------------------------------------------------------------------------------- CookieSpec cookieSpec = obtainCookieSpec(); final List<Cookie> matchedCookies = new ArrayList<Cookie>(); final Date now = new Date(); boolean expired = false; for (final Cookie cookie : cookies) { if (cookie.isExpired(now)) { // 过期了..,没有设置expire不过期 VolleyLog.v("Cookie " + cookie + " expired"); expired = true; } else { if (cookieSpec.match(cookie, cookieOrigin)) { VolleyLog.v("Cookie " + cookie + " match " + cookieOrigin); matchedCookies.add(cookie); } } } // 有过期的Cookie存在,则去掉所有过期的Cookie if (expired) { cookieStore.clearExpired(now); } // ----------------------------------------------------------------------------------------------------- // 4、将符合条件的Cookie字符串,设置成请求头headers Map中 // ----------------------------------------------------------------------------------------------------- String cookie = cookieSpec.formatCookies(matchedCookies); if (null != cookie && cookie.length() > 0) { cookieHeaders.put("Cookie", cookie); } }