webview cookie 和请求头、响应头

2018-03-01  本文已影响0人  小川君

cookie的获取

CookieManager cookieManager = CookieManager.getInstance();
String        cookieStr     = cookieManager.getCookie(url);

cookie的设置:

CookieSyncManager.createInstance(context);
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptCookie(true);
        cookieManager.removeAllCookie();
        cookieManager.removeSessionCookie();//移除
        cookieManager.setCookie(url, cookie);//cookies是在HttpClient中获得的cookie
        CookieSyncManager.getInstance().sync();

cookie的添加

CookieManager.getInstance().setCookie(url, Cookie);
// 同步cookie
 if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            CookieSyncManager.getInstance().sync();
            return;
        }
        AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
            @Override
            public void run() {

                CookieManager.getInstance().flush();

            }
        });

请求头的添加

Map<String,String> map=new HashMap<>();
map.put("chuan","测试头");
webView.loadUrl(url,map);

注:服务端收到的请求头的key会将你设置的key默认改成:HTTP_CHAUN

响应头的获取

目前获取响应头的方法只找到了这一种 但是总感觉有些不足 因为在WebResourceResponse类中是有响应头的获取方法的 所以请求大神们多多指教

    public boolean  shouldOverrideUrlLoading  (WebView  view, String  url){  
        // here you will use the url to access the headers.  
        // in this case, the Content-Length one  
        URL url;  
        URLConnection conexion;  
        try {  
            url = new URL(urlConection);  
            conexion = url.openConnection();  
            conexion.setConnectTimeout(3000);  
            conexion.connect();  
            // get the size of the file which is in the header of the request  
            int size = conexion.getContentLength();  
        }  
  
  
        // and here, if you want, you can load the page normally  
        String htmlContent = "";  
        HttpGet httpGet = new HttpGet(urlConection);  
        // this receives the response  
        HttpResponse response;  
        try {  
            response = httpClient.execute(httpGet);  
            if (response.getStatusLine().getStatusCode() == 200) {  
                // la conexion fue establecida, obtener el contenido  
                HttpEntity entity = response.getEntity();  
                if (entity != null) {  
                    InputStream inputStream = entity.getContent();  
                    htmlContent = convertToString(inputStream);  
                }  
            }  
         } catch (Exception e) {}  
  
         webview.loadData(htmlContent, "text/html", "utf-8");  
         return true;  
    }  
  
    public String convertToString(InputStream inputStream){  
        StringBuffer string = new StringBuffer();  
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));  
        String line;  
        try {  
            while ((line = reader.readLine()) != null) {  
                string.append(linea + "\n");  
            }  
        } catch (IOException e) {}  
        return string.toString();  
    }
URL obj = new URL(urla);
                        URLConnection conn = obj.openConnection();
                        Map<String, List<String>> map = conn.getHeaderFields();

                        System.out.println("显示响应Header信息...\n");

                        for (Map.Entry<String, List<String>> entry : map.entrySet()) {
                            System.out.println("Key : " + entry.getKey() +
                                    " ,Value : " + entry.getValue());
                        }

                        System.out.println("\n使用key获得响应Header信息 \n");
                        List<String> server = map.get("Server");

                        if (server == null) {
                            System.out.println("Key 'Server' is not found!");
                        } else {
                            for (String values : server) {
                                System.out.println(values);
                            }
                        }

                    } catch (Exception e) {
                        e.printStackTrace();
                    }

上一篇下一篇

猜你喜欢

热点阅读