【分享】webview如何自动登录保存登录信息
来源:互联网 发布:数控机床如何编程 编辑:程序博客网 时间:2024/05/29 13:17
用户名密码登录验证后保存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("assword", map .get("assword")));
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();
}</i></i>
如何在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);
}
}
这样就可以每次刷新页面的时候带着session一起请求。
如果想保存用户信息,还是老方法SharedPreferences。
// 你的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("assword", map .get("assword")));
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();
}</i></i>
如何在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);
}
}
这样就可以每次刷新页面的时候带着session一起请求。
如果想保存用户信息,还是老方法SharedPreferences。
0 0
- 【分享】webview如何自动登录保存登录信息
- [Android实例] 关于webview如何自动登录保存登录信息
- [Android实例] 关于webview如何自动登录保存登录信息
- webview如何自动登录保存登录信息详情
- 关于webview如何自动登录保存登录信息
- 关于webview如何自动登录保存登录信息
- [Android实例] 关于webview如何自动登录保存登录信息
- SharedPreference自动保存登录信息
- IOTest把登录信息保存,下次打开自动读取保存的登录信息,无需再次输入
- silverlight保存登录信息
- silverlight保存登录信息
- 登录界面保存信息
- SQLite保存登录信息
- Android WebView保存Cookie登录
- Android WebView保存Cookie登录
- Cookie 实现WebView自动登录
- java之cookie保存登录信息下次登录时自动填充表单
- 工具类保存登录信息
- ITIL工具系列之Open View
- Unity3D Unity Camera摄像机类 - 相机的函数方法(转)
- Informix图形化工具
- 51单片机 8*8LED点阵横向流水 使用位运算生成中间帧
- 数据库连接池代理实现(代理设计模式)-续数据库连接池
- 【分享】webview如何自动登录保存登录信息
- 整理看过的书中,提到的别的书。
- 回溯法解决八皇后问题
- 创新驱动磷肥行业转型
- android中的智能指针
- oracle 存储过程的输出
- Combining SqlConnection and SqlCommand in one Class in C#
- IntelliJ IDEA 快捷键和设置
- WebBrowser用法总结