美文网首页android技术
Android中Http加载如何得到Cookie和 WebVie

Android中Http加载如何得到Cookie和 WebVie

作者: 切切歆语 | 来源:发表于2019-11-04 20:12 被阅读0次

    最近做项目在手机端登录Http请求和 WebView 记载登录获取Cookie信息,可查看Cookie信息。

    如图:

    image

    Http请求获取Cookie信息:

      public static String request(String httpUrl, String params, Context context) {
            BufferedReader reader = null;
            String result = null;
            String httpurl = " http://xwwscs.com";
            StringBuffer sbf = new StringBuffer();
            try {
                URL url = new URL(httpurl + "/app.php");
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
                connection.setRequestProperty("Cookie", CookieUtil.getParam(context).toString());
                connection.setConnectTimeout(3000);
                // 是否输入参数
                connection.setDoOutput(true);
                byte[] bypes = params.toString().getBytes();
                connection.getOutputStream().write(bypes);// 输入参数
               connection.connect();
                InputStream is = connection.getInputStream();
                reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                String strRead = null;
                while ((strRead = reader.readLine()) != null) {
                    sbf.append(strRead);
                    sbf.append("\r\n");
                }
                reader.close();
                Map<String, List<String>> cookie_map = connection.getHeaderFields();
                List<String> cookies = cookie_map.get("Set-Cookie");
                if (null != cookies && 0 < cookies.size()) {
                    String s = "";
                    for (String cookie : cookies) {
                        if (s.isEmpty()) {
                            s = cookie;
                        } else {
                            s += ";" + cookie;
                        }
                    }
                    Log.i("ss", s);
                }
                result = sbf.toString();
            } catch (Exception e) {
                result = "error";
                e.printStackTrace();
            }
            return result;
        }
    }
    

    WebView加载网页获取Cookie

    webView.setWebViewClient(new WebViewClient()
                    {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view,
                        String url) {
                    // TODO Auto-generated method stub
                    return super.shouldOverrideUrlLoading(view, url);
                }
                @Override
                public void onPageFinished(WebView view, String url) {
                    CookieManager cookieManager = CookieManager.getInstance();
                    String CookieStr = cookieManager.getCookie(url);
                    if(CookieStr!=null)
                    {
                        Log.i("cookie", CookieStr);
                    }
                    super.onPageFinished(view, url);
                }
                
              });
        
    

    源码点击下载:https://github.com/DickyQie/android-webview

    相关文章

      网友评论

        本文标题:Android中Http加载如何得到Cookie和 WebVie

        本文链接:https://www.haomeiwen.com/subject/sjcdbctx.html