zoukankan      html  css  js  c++  java
  • cef谷歌内核浏览器获取cookie值并保存

    目的:获取cookie存入数据库,以实现下次登录的自动完成
    知识点:事件和委托

    建立cookie读取对象,继承接口ICookieVisitor

    public class CookieVisitor : ICookieVisitor
        {
            //定义委托
            public Action<Cookie> SendCookie = null;
            public bool Visit(CefSharp.Cookie cookie, int count, int total, ref bool deleteCookie)
            {
                if (SendCookie != null)
                {
                    SendCookie(cookie);
                }
    
                return true;
            }
    
            public void Dispose() { }
        }
    

    加载指定页面的cookie信息

    chrbro.FrameLoadEnd += (s, e) =>
                {
                    //一个页面加载如果有多个iframe会重复加载多次,需自己判断自己的加载的iframe或标记执行一次
                    BeginInvoke(new Action(() =>
                    {
                                        string _url = e.Url;
                                        //判断是否是需要获取cookie的页面
                                        if (_url.Contains("需要获取cookie的地址"))
                                        {
                                            //注册获取cookie回调事件
                                            ICookieManager cookieManager = chrbro.GetCookieManager();
                                            CookieVisitor visitor = new CookieVisitor();
                                            visitor.SendCookie += SaveCookie;
                                            cookieManager.VisitAllCookies(visitor);
                                        }
                                   
                    }));
                };
    

    回调函数体,这里可以执行需要执行的操作

    private void SaveCookie(CefSharp.Cookie cookie)
    {
                Console.WriteLine("Name:" + cookie.Name + "         Value:" + cookie.Value);
                ////保存数据库操作,根据自己需求更改
                //string sql = " INSERT INTO tbbro_cookies(name,value) VALUES ('" + cookie.Name + "','" + cookie.Value + "')";
                //cladata.svrUpdate(sql);
    

    }

  • 相关阅读:
    linux部署zookeeper
    docker+fastdfs+springboot一键式搭建分布式文件服务器
    IDEA 设置springboot项目热部署
    定时备份docker部署的mysql数据
    离线安装docker
    PLSQL安装、PLSQL汉化、激活
    Mysql添加用户与授权
    MySql定时备份脚本
    mysql数据库定时备份
    实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
  • 原文地址:https://www.cnblogs.com/soundcode/p/12653697.html
Copyright © 2011-2022 走看看