HttpWebRequest.CookieContainer 屬性

定義

取得或設定與要求相關聯的 Cookie。

C#
public virtual System.Net.CookieContainer CookieContainer { get; set; }
C#
public virtual System.Net.CookieContainer? CookieContainer { get; set; }
C#
public System.Net.CookieContainer CookieContainer { get; set; }

屬性值

CookieContainer,其中包含與此要求相關聯的Cookie。

範例

下列程式代碼範例會將要求傳送至 URL,並顯示回應中傳回的 Cookie。

C#
using System.Net;
using System;
namespace Examples.System.Net.Cookies
{
    // This example is run at the command line.
    // Specify one argument: the name of the host to
    // send the request to.
    // If the request is sucessful, the example displays the contents of the cookies
    // returned by the host.

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

            using (var response = (HttpWebResponse) request.GetResponse())
            {
                // Print the properties of each cookie.
                foreach (Cookie cook in response.Cookies)
                {
                    Console.WriteLine("Cookie:");
                    Console.WriteLine($"{cook.Name} = {cook.Value}");
                    Console.WriteLine($"Domain: {cook.Domain}");
                    Console.WriteLine($"Path: {cook.Path}");
                    Console.WriteLine($"Port: {cook.Port}");
                    Console.WriteLine($"Secure: {cook.Secure}");

                    Console.WriteLine($"When issued: {cook.TimeStamp}");
                    Console.WriteLine($"Expires: {cook.Expires} (expired? {cook.Expired})");
                    Console.WriteLine($"Don't save: {cook.Discard}");
                    Console.WriteLine($"Comment: {cook.Comment}");
                    Console.WriteLine($"Uri for comments: {cook.CommentUri}");
                    Console.WriteLine($"Version: RFC {(cook.Version == 1 ? 2109 : 2965)}");

                    // Show the string representation of the cookie.
                    Console.WriteLine($"String: {cook}");
                }
            }
        }
    }
}

// Output from this example will be vary depending on the host name specified,
// but will be similar to the following.
/*
Cookie:
CustomerID = 13xyz
Domain: .contoso.com
Path: /
Port:
Secure: False
When issued: 1/14/2003 3:20:57 PM
Expires: 1/17/2013 11:14:07 AM (expired? False)
Don't save: False
Comment:
Uri for comments:
Version: RFC 2965
String: CustomerID = 13xyz
*/

備註

注意

WebRequestHttpWebRequestServicePointWebClient 已經過時,您不應該將它們用於新的開發。 請改用 HttpClient

CookieContainer 屬性會提供 CookieContainer 類別的實例,其中包含與此要求相關聯的 Cookie。

默認會 nullCookieContainer。 您必須將 CookieContainer 物件指派給 屬性,讓 GetResponse 方法傳回之 HttpWebResponseCookies 屬性中傳回 Cookie。

備註

基於安全性考慮,預設會停用 Cookie。 如果您想要使用 Cookie,請使用 CookieContainer 屬性來啟用 Cookie。

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

另請參閱