如何将CookieContainer转换为字符串?

3
我尝试使用循环处理cookie容器,但出现错误。如何正确将 CookieContainer 转换为 string
foreach (Cookie item in cookieContainer)
{
    var data = item.Value + "=" + item.Name;
}

错误 2: foreach语句不能用于类型为 "System.Net.CookieContainer" 的变量。
2个回答

4

如果您只对特定域的cookie感兴趣,那么可以使用GetCookies()方法进行迭代。

var cookieContainer = new CookieContainer();
var testCookie = new Cookie("test", "testValue");
var uri = new Uri("https://www.google.com");
cookieContainer.Add(uri, testCookie);

foreach (var cookie in cookieContainer.GetCookies(uri))
{
    Console.WriteLine(cookie.ToString()); // test=testValue
}

如果你有兴趣获取所有的cookies,那么你可能需要使用反射技术,如这个答案所提供的。


0

示例:

public static void Main(string[] args)
    {   
        if (args == null || args.Length != 1)
        {
            Console.WriteLine("Specify the URL to receive the request.");
            Environment.Exit(1);
        }
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(args[0]);
        request.CookieContainer = new CookieContainer();

        HttpWebResponse response = (HttpWebResponse) request.GetResponse();



        // Print the properties of each cookie.
        foreach (Cookie cook in response.Cookies)
        {                    
            // Show the string representation of the cookie.
            Console.WriteLine ("String: {0}", cook.ToString());
        }
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接