关于Webview如何自动登录保存登录信息

[Android实例] 关于Webview如何自动登录保存登录信息

用户名密码登录验证后保存Session

// 你的URL
                HttpPost httppost = new HttpPost(Constants.ServerUrl.WEB_URL + url);
                try {
 
                        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
 
                        // Your DATA
                        nameValuePairs.add(new BasicNameValuePair("UserName", map
                                        .get("UserName")));
 
                        nameValuePairs.add(new BasicNameValuePair("Password", map
                                        .get("Password")));
 
                        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
                        HttpResponse response;
 
                        response = httpclient.execute(httppost);
                        if (response.getStatusLine().getStatusCode() == 200) {
                                // 获得响应
                                String result = EntityUtils.toString(response.getEntity());
                                // SharedPreferences preferences = context.getSharedPreferences(
                                // "login", Context.MODE_PRIVATE);
                                // Editor editor = preferences.edit();
                                // String handlers = "";
                                String cookie = "";
                                Date sessionTime = new Date();
                                List<Cookie> cookies = httpclient.getCookieStore().getCookies();
                                if (!cookies.isEmpty()) {
                                        for (int i = 0; i < cookies.size(); i++) {
                                                cookie = cookies.get(i).getName() + "="
                                                                + cookies.get(i).getValue() + ";domain="
                                                                + cookies.get(i).getDomain();
                                                ;
                                                sessionTime = cookies.get(i).getExpiryDate();
                                        }
                                }
                               //保存session
                                PersistentConfig config = new PersistentConfig(context);
                                config.setCookie(cookie);
 
                                config.setSessionTime(sessionTime.getTime());
                                // for (int i = 0; i < response.getAllHeaders().length; i++) {
                                // if (response.getAllHeaders()<i>.toString().contains(
                                // "set-cookie")) {
                                // handlers += response.getAllHeaders()<i>.toString();
                                // break;
                                // }
                                // }
                                //
                                // editor.putString("cookies",
                                // response.getHeaders("Set-Cookie")[0].toString());
                                // editor.commit();
                                return result;
                        }
 
                } catch (ClientProtocolException e) {
 
                        // TODO Auto-generated catch block
 
                        e.printStackTrace();
 
                } catch (IOException e) {
 
                        // TODO Auto-generated catch block
 
                        e.printStackTrace();
 
                }


如何在Webview请求网站时使用Session

//webview初始化的时候调用  
        main_view = (WebView) findViewById(R.id.main_webview);  
        new WebViewTask().execute();  
           
        private class WebViewTask extends AsyncTask<Void, Void, Boolean> {  
                String sessionCookie;  
                CookieManager cookieManager;  
   
                @Override  
                protected void onPreExecute() {  
                        CookieSyncManager.createInstance(MainActivity.this);  
                        cookieManager = CookieManager.getInstance();  
   
                        sessionCookie = new PersistentConfig(getApplicationContext())  
                                        .getCookieString();  
                        if (sessionCookie != null) {  
                                // delete old cookies  
                                cookieManager.removeSessionCookie();  
                        }  
                        super.onPreExecute();  
                }  
   
                protected Boolean doInBackground(Void... param) {  
                        // this is very important - THIS IS THE HACK  
                        SystemClock.sleep(1000);  
                        return false;  
                }  
   
                @Override  
                protected void onPostExecute(Boolean result) {  
                        if (sessionCookie != null) {  
                                cookieManager.setCookie(Constants.ServerUrl.WEB_URL,  
                                                sessionCookie);  
                                CookieSyncManager.getInstance().sync();  
                        }  
                        main_view.setScrollbarFadingEnabled(true);  
                        main_view.getSettings().setPluginsEnabled(true);  
                        main_view.getSettings().setPluginState(PluginState.ON);  
                        main_view.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);  
                        WebSettings webSettings = main_view.getSettings();  
                        webSettings.setJavaScriptEnabled(true);  
                        // 设置可以访问文件  
                        webSettings.setAllowFileAccess(true);  
                        // 设置支持缩放  
                        webSettings.setBuiltInZoomControls(true);  
                        main_view.setWebViewClient(new WebViewClient() {  
                                @Override  
                                public void onPageStarted(WebView view, String url,  
                                                Bitmap favicon) {  
                                        // TODO Auto-generated method stub   
                                        super.onPageStarted(view, url, favicon);  
                                }  
   
                                @Override  
                                public void onLoadResource(WebView view, String url) {  
                                        // history();   
                                }  
                        });  
                        main_view.setWebChromeClient(new WebChromeClient() {  
                                public void onProgressChanged(WebView view, int progress) {  
                                        //Change  
                                }  
                        });  
                        ShowUrlView(Constants.ServerUrl.INDEX);  
                }  
        } 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,247评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,665评论 19 139
  • 如果算下来的话,一个月平均一次或许都没有,我会去清吧或者买一瓶在宿舍喝。 要是你问我酒好喝么,我会说还可以。但是我...
    在disney哭泣阅读 332评论 0 2
  • 我贩卖我的时间和情感,签下契约,完成一天的租赁。 我提供的既不是肉体,也不是一个心理治疗,当然一天也不能称它为爱情...
    星火烧工作室阅读 375评论 0 0
  • 心中情愁难得意, 尘世浮华尽飘渺。 似在溪水渡上船, 随风欲与梦西游。
    历尽平凡阅读 143评论 0 0

友情链接更多精彩内容