使用HttpURLConnection加载htm(超链接)获得cookie并将cookie同步到webView中
2017-03-13 18:02
465 查看
一、【环境】
1.原生页面使用webView加载h5页面(浏览);
2.(购买商品时)后台h5使用cookie判断登录状态;
3.没登录情况下js调用原生登录窗口;
4.原生登录后将cookie同步到webView;
二、【步骤】
1.新开线程加载httpUrlConnection
/**检测网址*/
private void detectionUrl(final String url) {
new Thread(new Runnable() {
@Override
public void run() {
getRespStatus(url);
}
}).start();
} 2.加载html读取状态与cookie
/**获得网页请求码*/
private int getRespStatus(String htmlUrl) {
int status=0;
try {
URL url = new URL(htmlUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setUseCaches(false);//请求不能使用缓存
conn.setConnectTimeout(3000);//链接超时
status = conn.getResponseCode();
String sessionId = "";
String cookieVal = "";
String key = null;
//取cookie
for(int i = 1; (key = conn.getHeaderFieldKey(i)) != null; i++){
if(key.equalsIgnoreCase("set-cookie")){
cookieVal = conn.getHeaderField(i);
// cookieVal = cookieVal.substring(0, cookieVal.indexOf(";"));
sessionId = sessionId + cookieVal + ";";
}
}
myWv.synCookies(context,htmlUrl,cookieVal);//同步cookie到webView
} catch (IOException e) {
e.printStackTrace();
}
AutoLog.v(TAG, "H5地址-------------:" + htmlUrl + " 请求码:" + status);
return status;
} 3.同步cookie
/**
* 同步一下cookie
*/
public void synCookies(Context context, String url, String cookies) {
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();//移除
cookieManager.setCookie(url, cookies);//cookies是在HttpClient中获得的cookie
CookieSyncManager.getInstance().sync();
}
*注:
4.关闭webView时清空cookie
public void clearWebViewCache(Context context){
// 清除cookie即可彻底清除缓存
CookieSyncManager.createInstance(context);
CookieManager.getInstance().removeAllCookie();
}
1.原生页面使用webView加载h5页面(浏览);
2.(购买商品时)后台h5使用cookie判断登录状态;
3.没登录情况下js调用原生登录窗口;
4.原生登录后将cookie同步到webView;
二、【步骤】
1.新开线程加载httpUrlConnection
/**检测网址*/
private void detectionUrl(final String url) {
new Thread(new Runnable() {
@Override
public void run() {
getRespStatus(url);
}
}).start();
} 2.加载html读取状态与cookie
/**获得网页请求码*/
private int getRespStatus(String htmlUrl) {
int status=0;
try {
URL url = new URL(htmlUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setUseCaches(false);//请求不能使用缓存
conn.setConnectTimeout(3000);//链接超时
status = conn.getResponseCode();
String sessionId = "";
String cookieVal = "";
String key = null;
//取cookie
for(int i = 1; (key = conn.getHeaderFieldKey(i)) != null; i++){
if(key.equalsIgnoreCase("set-cookie")){
cookieVal = conn.getHeaderField(i);
// cookieVal = cookieVal.substring(0, cookieVal.indexOf(";"));
sessionId = sessionId + cookieVal + ";";
}
}
myWv.synCookies(context,htmlUrl,cookieVal);//同步cookie到webView
} catch (IOException e) {
e.printStackTrace();
}
AutoLog.v(TAG, "H5地址-------------:" + htmlUrl + " 请求码:" + status);
return status;
} 3.同步cookie
/**
* 同步一下cookie
*/
public void synCookies(Context context, String url, String cookies) {
CookieSyncManager.createInstance(context);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.removeSessionCookie();//移除
cookieManager.setCookie(url, cookies);//cookies是在HttpClient中获得的cookie
CookieSyncManager.getInstance().sync();
}
*注:
4.关闭webView时清空cookie
public void clearWebViewCache(Context context){
// 清除cookie即可彻底清除缓存
CookieSyncManager.createInstance(context);
CookieManager.getInstance().removeAllCookie();
}
相关文章推荐
- 利用HttpClient获得cookie,并在webview中使用的方法
- 利用HttpClient获得cookie,并在webview中使用的方法
- WebView,HttpURLConnection,HttpClient的简单使用
- 使用HttpClient同步WebView时的cookie第一次加载不工作的问题的解决
- 模拟手机客户端与Web应用的交互[URL和HttpURLConnection的使用]
- 使用HttpURLConnection访问web页面
- 使用HttpURLConnection访问web页面
- 使用HttpURLConnection访问web页面
- HttpURLConnection webview sessionId 连贯性
- Http访问网络(AsyncTask 异步加载和使用HttpURLConnection)
- 使用HttpWebRequest获得URL的返回值
- android httpclient 与 webView cookie同步问题
- WebView内使用post加载url并添加header
- android 加载webview时,保存并同步cookie实现免登陆
- 使用HttpWebRequest 首先要获得浏览器的Cookie
- 通过URL,使用HttpURLConnection进行请求/响应,访问web服务器图片等资源。异常报错
- android httpclient与webview cookie同步
- 使用HttpURLConnection访问web页面
- 网络技术WebView,json,gson,HttpURLconnection
- 使用HttpURLConnection调用RESTful Web服务