Android 加载html,两种添加Cookies的方法!
2018-01-26 10:30
585 查看
方式一:
方式2:
方式二的变种:
如果有cookies有很多项的话,添加方式如下:
用法:
结果:
还有一种添加请求头的方式;但是方式和效果如下:
注意事项:
这种方式的话,这两行注释掉,如果你的代码中有这两行,原因,我忘记了,自行百度
效果如下:
publicvoidsynCookies(Contextcontext,Stringurl){ CookieSyncManager.createInstance(context); CookieManagercookieManager=CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.removeSessionCookie();//移除 cookieManager.setCookie(url,String.format("%s=%s","uid",userEntry.getId())); cookieManager.setCookie(url,String.format("%s=%s","xx",userEntry.getxxx())); cookieManager.setCookie(url,String.format("%s=%s","xxx",userEntry.getPortCode())); CookieSyncManager.getInstance().sync(); }
方式2:
privatevoidsynCookies(finalContextcontext,finalStringurl){ newThread(newRunnable(){ @Override publicvoidrun(){ CookieSyncManager.createInstance(context); CookieManagercookieManager=CookieManager.getInstance(); try{ URLurlT=newURL(url); try{ HttpURLConnectionurlConnection=(HttpURLConnection)urlT.openConnection(); StringcookieString=urlConnection.getHeaderField("Set-Cookie"); //使用cookieManager..setCookie()向URL中添加Cookie cookieManager.setCookie(url,cookieString); CookieSyncManager.getInstance().sync(); }catch(IOExceptione){ e.printStackTrace(); } }catch(MalformedURLExceptione){ e.printStackTrace(); } } }).start(); }
方式二的变种:
/** *同步一下cookie */ //publicvoidsynCookies(Contextcontext,Stringurl){ //CookieSyncManager.createInstance(context); //CookieManagercookieManager=CookieManager.getInstance(); //cookieManager.setAcceptCookie(true); //cookieManager.removeSessionCookie();//移除 //Stringcookies=paramsUrl; //cookieManager.setCookie(url,cookies);//cookies是在HttpClient中获得的cookie //CookieSyncManager.getInstance().sync(); //}
如果有cookies有很多项的话,添加方式如下:
用法:
synCookies(this,ContantUrl.carriage_suitcase); mWebView.loadUrl(url);
注意事项:添加cookies的时候,setCookies(url,"xxx");中的url是最基本的url不要带参数!!!
结果:
还有一种添加请求头的方式;但是方式和效果如下:
Map<String,String>headers=newTreeMap<>(); headers.put("uid",userEntry.getId()); headers.put("xxx",userEntry.getTxxx()); headers.put("xxx1",userEntry.getPortxxx()); mWebView.loadUrl(url,headers); mWebView.setWebChromeClient(newWebViewClient()); mWebView.setWebViewClient(newandroid.webkit.WebViewClient());
注意事项:
这种方式的话,这两行注释掉,如果你的代码中有这两行,原因,我忘记了,自行百度
//webSettings.setSupportZoom(false); //webSettings.setBuiltInZoomControls(false);
效果如下:
图片没有截全:两种添加的效果通过抓包还是有区别的,自己仔细看一下,这种添加方式,虽然也是添加请求头,但是这三个参数前面,抓包的时候,会归类为:Miscellaneous(杂项:)这两种添加效果,主要看公司的要求了,
还有一些公司和js交互,为了保证安全,会不用cookies而改为seesion.
相关文章推荐
- Android添加optionsmenu的两种方法
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- Android 两种为自定义组件添加属性的使用方法和区别
- Android在布局中动态添加view的两种方法
- Android HttpClient和URLConnection两种下载HTML源码的方法
- Android HttpClient和URLConnection两种下载HTML源码的方法
- Android加载Html的方法
- Android加载Html的方法
- 两种方法实现在HTML页面加载完毕后运行某个js
- HTML加载外部css文件的两种方法
- Android加载Html的方法
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- Android中添加背景音乐的两种方法
- 两种方法实现在HTML页面加载完毕后运行某个js
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- Android 两种为自定义控件添加属性的使用方法和区别
- 说说Android 两种为自定义组件添加属性的使用方法和区别
- Android中WebView加载Html中的图片添加点击事件
- 说说Android 两种为自定义组件添加属性的使用方法和区别