用Okhttp框架登录之后的Cookie设置到webView中(转)

1.webview中设置:

 

  1.  @SuppressWarnings("deprecation")  
  2. public void synCookies(Context context, String url) {    
  3.        CookieSyncManager.createInstance(context);    
  4.        CookieManager cookieManager = CookieManager.getInstance();    
  5.        cookieManager.setAcceptCookie(true);    
  6. //      cookieManager.removeSessionCookie();// 移除    
  7.            
  8.        cookieManager.removeAllCookie();    
  9.     //   String[] cookie = mCookieStr.split(";");    
  10.          
  11.   //     Cookie[] cookie  = CookieUtil.getCookies().toArray(  
  12. // new Cookie[CookieUtil.getCookies().size()]);  
  13.        
  14.        List<Cookie>   cookies=SimpleCookieJar.getCookies();  
  15.          
  16.          
  17.          
  18.        StringBuffer sb = new StringBuffer();  
  19.          
  20.          
  21.        for ( Cookie cookie : cookies)  
  22.        {  
  23.            
  24. String cookieName = cookie.name();  
  25. String cookieValue = cookie.value();  
  26. if (!TextUtils.isEmpty(cookieName)  
  27. && !TextUtils.isEmpty(cookieValue)) {  
  28. sb.append(cookieName + "=");  
  29. sb.append(cookieValue + ";");  
  30. }  
  31.        }  
  32.          
  33.   
  34. String[] cookie = sb.toString().split(";");   
  35.        for (int i = 0; i < cookie.length; i++) {    
  36.          Log.d("cookie[i]",cookie[i]);  
  37.            cookieManager.setCookie(url, cookie[i]);// cookies是在HttpClient中获得的cookie    
  38.        }    
  39.    
  40.    
  41.        CookieSyncManager.getInstance().sync();    
  42.    }   


 

2.SimpleCookieJar 这个类中设置:

 

  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3. import okhttp3.Cookie;  
  4. import okhttp3.CookieJar;  
  5. import okhttp3.HttpUrl;  
  6. public final class SimpleCookieJar implements CookieJar  
  7. {  
  8.     private final List<Cookie> allCookies = new ArrayList<Cookie>();  
  9.   
  10.   
  11.       
  12. private static List<Cookie> cookies;  
  13.   
  14. public static List<Cookie> getCookies() {  
  15. return cookies != null ? cookies : new ArrayList<Cookie>();  
  16. }  
  17.   
  18. public static void setCookies(List<Cookie> cookies) {  
  19. SimpleCookieJar.cookies = cookies;  
  20. }  
  21.   
  22.     public synchronized void saveFromResponse(HttpUrl url, List<Cookie> cookies)  
  23.     {  
  24.         allCookies.addAll(cookies);  
  25.           
  26.         setCookies(cookies);  
  27.     }  
  28.   
  29.   
  30.     @Override  
  31.     public synchronized List<okhttp3.Cookie> loadForRequest(HttpUrl url)  
  32.     {  
  33.         List<Cookie> result = new ArrayList<Cookie>();  
  34.         for (Cookie cookie : allCookies)  
  35.         {  
  36.             if (cookie.matches(url))  
  37.             {  
  38.                 result.add(cookie);  
  39.             }  
  40.         }  
  41.         return result;  
  42.     }  
  43. }  
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值