Skip to content
The Chat Archive
gpt-4-0314· OpenAI WildChat-4.8M (AI2)

C# CookieContainer 未包含remove定义

  1. User

    C# CookieContainer 未包含remove定义

  2. Assistant

    在C#中,CookieContainer类不包含remove方法。如果需要删除CookieContainer中的某个Cookie,可以采用以下方式:

    1. 创建一个新的CookieContainer实例。
    2. 遍历旧的CookieContainer中的所有Cookie,将需要保留的Cookie添加到新的CookieContainer中。
    3. 使用新的CookieContainer实例替换旧的实例。

    以下是一个例子:

    using System;
    using System.Net;
    
    class Program
    {
        static void Main()
        {
            // 创建一个CookieContainer实例,并添加一些Cookie
            CookieContainer container = new CookieContainer();
            container.Add(new Cookie("Cookie1", "Value1", "/", "example.com"));
            container.Add(new Cookie("Cookie2", "Value2", "/", "example.com"));
            container.Add(new Cookie("Cookie3", "Value3", "/", "example.com"));
            
            Console.WriteLine("Before removing cookie:");
            DisplayCookies(container, "example.com");
    
            // 移除名为"Cookie2"的Cookie
            string cookieNameToRemove = "Cookie2";
            CookieContainer newContainer = new CookieContainer();
            Uri uri = new Uri("http://example.com");
            foreach (Cookie cookie in container.GetCookies(uri))
            {
                if (cookie.Name != cookieNameToRemove)
                {
                    newContainer.Add(cookie);
                }
            }
    
            container = newContainer;
    
            Console.WriteLine("\nAfter removing cookie:");
            DisplayCookies(container, "example.com");
        }
    
        static void DisplayCookies(CookieContainer container, string domain)
        {
            Uri uri = new Uri("http://" + domain);
            foreach (Cookie cookie in container.GetCookies(uri))
            {
                Console.WriteLine("Name: " + cookie.Name + ", Value: " + cookie.Value);
            }
        }
    }
    

    这个例子首先创建了一个包含3个Cookie的CookieContainer实例。然后,我们创建一个新的CookieContainer实例,将除了名为"Cookie2"的Cookie之外的其他Cookie添加到新的实例。最后,我们用新的CookieContainer实例替换旧的实例。