webview 模拟登陆

来源:互联网 发布:c语言迷宫最短路径 编辑:程序博客网 时间:2024/06/03 23:01

好像网上很多这个资料,不过全一点的还是stackoverflow上的一个回答,可能不同后台的实际情况也有点不同,权当作是做一个笔记好了:


private class CookieTask extends AsyncTask<Boolean, Boolean, Boolean>{@Overrideprotected void onPreExecute(){CookieSyncManager.createInstance(Activity.this);CookieSyncManager.getInstance().startSync();}@Overrideprotected Boolean doInBackground(Boolean... params) {try{String cookie = doGetCookie();}catch(Exception e){return false;}if(cookie != null && cookie.length() > 0){android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance();cookieManager.setAcceptCookie(true);cookieManager.setCookie(getDefaultURL(), cookie);CookieSyncManager.getInstance().sync();}else{return false;}return true;}private String doGetCookie() throws Exception{StringBuilder builder = new StringBuilder();builder.append("n=").append("account");builder.append("&p=").append("password");byte[] data = builder.toString().getBytes("UTF-8");URL url=new URL(urlstr);HttpURLConnection connection = (HttpURLConnection) url.openConnection();try{connection.setDoOutput(true);connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");connection.setRequestProperty("Content-Length", Integer.toString(data.length));connection.setRequestMethod("POST");connection.setInstanceFollowRedirects(false); OutputStream os = connection.getOutputStream();os.write(data);os.close();int aRstCode=connection.getResponseCode();if (aRstCode == HttpURLConnection.HTTP_OK){cookie = connection.getHeaderField("Set-Cookie");}}catch(Exception e){throw e;}finally{if(connection != null){connection.disconnect();}}return cookie;}@Overrideprotected void onPostExecute(Boolean isSccuess){super.onPostExecute(isSccuess);if(isSccuess){mWebView.loadUrl(getDefaultURL());}}}@Overrideprotected void onDestroy(){CookieSyncManager.createInstance(Activity.this);  android.webkit.CookieManager cookieManager = android.webkit.CookieManager.getInstance(); cookieManager.removeAllCookie();CookieSyncManager.getInstance().sync();}


0 0
原创粉丝点击