CefSharp获取cookie


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public ChromiumWebBrowser browser;
        public static string cookies;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load_1(object sender, EventArgs e)
        {
            InitBrowser();
            MaximizeBox = false;
            ThreadPool.SetMaxThreads(20, 20);
        }


        //获取cookie
        private void visitor_SendCookie(CefSharp.Cookie obj)
        {
            cookies += obj.Domain.TrimStart('.') + "^" + obj.Name + "^" + obj.Value + "$";
            Console.WriteLine("*********** cookies ************");
            Console.WriteLine("cookies:{0}", cookies);
        }

        public static System.Net.Cookie GetCc()
        {
            System.Net.Cookie cookieCollection = new System.Net.Cookie();
            if (cookies == null)
            {
                return cookieCollection;
            }
            Dictionary<string, System.Net.Cookie> keys = new Dictionary<string, System.Net.Cookie>();
            string[] arr = cookies.Split('$');
            foreach (string s in arr)
            {
                string[] car = s.Split('^');
                //打印cookie
                Console.WriteLine("ssssssssssssssssssssssssssssssss-------------" + s);
                /*if (string.IsNullOrEmpty(s))
                    continue;
                string[] car = s.Split('^');
                if (car[1] != "PASS_ID")
                    continue;
                cookieCollection.Domain = car[0];
                cookieCollection.Name = car[1];
                cookieCollection.Value = car[2];
                return cookieCollection; */
            }
            return cookieCollection;
        }
        //初始化浏览器
        public void InitBrowser()
        {
            Cef.Initialize(new CefSettings());
            browser = new ChromiumWebBrowser("mms.pinduoduo.com");
            this.Controls.Add(browser);
            browser.Dock = DockStyle.Fill;
            browser.FrameLoadEnd += (_s, _e) =>
            {
                var cookieManager = Cef.GetGlobalCookieManager();
                CookieVisitor visitor = new CookieVisitor();
                visitor.SendCookie += visitor_SendCookie;
                cookieManager.VisitAllCookies(visitor);

            };
        }

        //窗体关闭时,记得停止浏览器
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Cef.Shutdown();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            System.Net.Cookie c = GetCc();
            Console.WriteLine(cookies);
        }

    }
}
public class CookieVisitor : ICookieVisitor
{
    public event Action<CefSharp.Cookie> SendCookie;

    public void Dispose()
    {
        //throw new NotImplementedException();
    }

    public bool Visit(CefSharp.Cookie cookie, int count, int total, ref bool deleteCookie)
    {
        deleteCookie = false;
        if (SendCookie != null)
        {
            SendCookie(cookie);
        }

        return true;
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM