阅读量:0
在C#中,可以使用HttpCookie
类来读取Cookie信息。以下是一个简单的示例,演示了如何从HTTP响应中读取Cookie并将它们保存到HttpCookieCollection
对象中:
using System; using System.Web; class Program { static void Main() { // 模拟一个HTTP响应,包含两个Cookie string cookieHeader = "Set-Cookie: name1=value1; expires=Thu, 01 Jan 2030 00:00:00 UTC; path=/; domain=.example.com; HttpOnly\r\nSet-Cookie: name2=value2; expires=Thu, 01 Jan 2030 00:00:00 UTC; path=/; domain=.example.com;"; // 创建一个HttpCookieCollection对象,用于存储解析后的Cookie HttpCookieCollection cookies = new HttpCookieCollection(); // 使用HttpWebRequest或HttpResponse对象从HTTP响应中读取Cookie // 在这个示例中,我们直接使用字符串cookieHeader来模拟这个过程 string[] cookiePairs = cookieHeader.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); foreach (string cookiePair in cookiePairs) { int eqPos = cookiePair.IndexOf('='); if (eqPos != -1) { string cookieName = cookiePair.Substring(0, eqPos); string cookieValue = cookiePair.Substring(eqPos + 1); // 创建一个新的HttpCookie对象,并设置其名称和值 HttpCookie newCookie = new HttpCookie(cookieName, cookieValue); // 将新创建的Cookie添加到HttpCookieCollection对象中 cookies.Add(newCookie); } } // 遍历HttpCookieCollection对象,输出每个Cookie的名称和值 foreach (HttpCookie cookie in cookies) { Console.WriteLine("Cookie Name: " + cookie.Name + ", Cookie Value: " + cookie.Value); } } }
在这个示例中,我们首先创建了一个模拟的HTTP响应头,其中包含了两个Cookie。然后,我们使用HttpCookieCollection
对象来存储解析后的Cookie。接下来,我们遍历模拟的HTTP响应头中的每一行,找到等号(=)的位置,从而提取出Cookie的名称和值。最后,我们将解析出的Cookie添加到HttpCookieCollection
对象中,并遍历该对象以输出每个Cookie的名称和值。