用户名密码登录验证后保存Session
-
- HttpPost httppost = new HttpPost(Constants.ServerUrl.WEB_URL + url);
- try {
-
- List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
-
-
- 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());
-
-
-
-
- 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();
- }
- }
-
- PersistentConfig config = new PersistentConfig(context);
- config.setCookie(cookie);
-
- config.setSessionTime(sessionTime.getTime());
-
-
-
-
-
-
-
-
-
-
-
- return result;
- }
-
- } catch (ClientProtocolException e) {
-
-
-
- e.printStackTrace();
-
- } catch (IOException e) {
-
-
-
- e.printStackTrace();
-
- }</i></i>
如何在Webview请求网站时使用Session
-
- 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) {
-
- cookieManager.removeSessionCookie();
- }
- super.onPreExecute();
- }
-
- protected Boolean doInBackground(Void... param) {
-
- 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) {
-
- super.onPageStarted(view, url, favicon);
- }
-
- @Override
- public void onLoadResource(WebView view, String url) {
-
- }
- });
- main_view.setWebChromeClient(new WebChromeClient() {
- public void onProgressChanged(WebView view, int progress) {
-
- }
- });
- ShowUrlView(Constants.ServerUrl.INDEX);
- }
- }
原文地址:http://www./forum.php?mod=viewthread&tid=199811
|