Android WebView 與登入狀態保持一致,建立SESSION會話
阿新 • • 發佈:2019-01-11
在登陸介面獲取驗證碼的時候:
new Thread(){
@Override
public void run() {
try {
SharedPreferences spf = getSharedPreferences("Cookie", Context.MODE_PRIVATE);
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(Gloable.DOLOAD +"code.gif");
HttpResponse response = client.execute(get);
Cookie cookie = ((AbstractHttpClient) client).getCookieStore().getCookies().get(0);
String sessionId = cookie.getValue();
SharedPreferences.Editor editor = spf.edit ();
editor.putString("sessionId", sessionId);
String cookieString = cookie.getName()+"="+cookie.getValue()+
";domain="+cookie.getDomain();
Log.e("test", "cookieString:"+cookieString);
editor.putString ("cookieString", cookieString);
editor.commit();
Log.i("info", "b--JSESSIONID=" + sessionId);
if (response.getStatusLine().getStatusCode() == 200) {
byte[] bytes = EntityUtils.toByteArray(response.getEntity());
final Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
runOnUiThread(new Runnable() {
public void run() {
Drawable drawable = new BitmapDrawable(bitmap);
iv_showCode.setBackgroundDrawable(drawable);
}
});
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}.start();
在webview載入url之前:
SharedPreferences spf = getSharedPreferences("Cookie", Context.MODE_PRIVATE);
CookieSyncManager.createInstance(this);
CookieManager cookieManager = CookieManager.getInstance();
String cookieString = spf.getString("cookieString", "");
cookieManager.setCookie(url, cookieString);
CookieSyncManager.getInstance().sync();
webview.loadUrl(url);