HttpWebRequest.CookieContainer 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置与请求关联的 Cookie。
public:
virtual property System::Net::CookieContainer ^ CookieContainer { System::Net::CookieContainer ^ get(); void set(System::Net::CookieContainer ^ value); };
public:
property System::Net::CookieContainer ^ CookieContainer { System::Net::CookieContainer ^ get(); void set(System::Net::CookieContainer ^ value); };
public virtual System.Net.CookieContainer CookieContainer { get; set; }
public virtual System.Net.CookieContainer? CookieContainer { get; set; }
public System.Net.CookieContainer CookieContainer { get; set; }
member this.CookieContainer : System.Net.CookieContainer with get, set
Public Overridable Property CookieContainer As CookieContainer
Public Property CookieContainer As CookieContainer
属性值
包含与此请求关联的 Cookie 的 CookieContainer。
示例
下面的代码示例将请求发送到 URL,并显示响应中返回的 Cookie。
#using <System.dll>
using namespace System;
using namespace System::Net;
// 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.
int main()
{
array<String^>^args = Environment::GetCommandLineArgs();
if ( args == nullptr || args->Length != 2 )
{
Console::WriteLine( "Specify the URL to receive the request." );
Environment::Exit( 1 );
}
HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create( args[ 1 ] ));
request->CookieContainer = gcnew CookieContainer;
HttpWebResponse^ response = dynamic_cast<HttpWebResponse^>(request->GetResponse());
response->Cookies = request->CookieContainer->GetCookies( request->RequestUri );
// Print the properties of each cookie.
System::Collections::IEnumerator^ myEnum = response->Cookies->GetEnumerator();
while ( myEnum->MoveNext() )
{
Cookie^ cook = safe_cast<Cookie^>(myEnum->Current);
Console::WriteLine( "Cookie:" );
Console::WriteLine( "{0} = {1}", cook->Name, cook->Value );
Console::WriteLine( "Domain: {0}", cook->Domain );
Console::WriteLine( "Path: {0}", cook->Path );
Console::WriteLine( "Port: {0}", cook->Port );
Console::WriteLine( "Secure: {0}", cook->Secure );
Console::WriteLine( "When issued: {0}", cook->TimeStamp );
Console::WriteLine( "Expires: {0} (expired? {1})", cook->Expires, cook->Expired );
Console::WriteLine( "Don't save: {0}", cook->Discard );
Console::WriteLine( "Comment: {0}", cook->Comment );
Console::WriteLine( "Uri for comments: {0}", cook->CommentUri );
Console::WriteLine( "Version: RFC {0}", cook->Version == 1 ? (String^)"2109" : "2965" );
// Show the string representation of the cookie.
Console::WriteLine( "String: {0}", 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
*/
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
*/
Imports System.Net
' This example is run at the command line.
' Specify one argument: the name of the host to
' receive the request.
' If the request is sucessful, the example displays the contents of the cookies
' returned by the host.
Public Class CookieExample
Public Shared Sub Main(args() As String)
If args Is Nothing OrElse args.Length <> 1 Then
Console.WriteLine("Specify the URL to receive the request.")
Environment.Exit(1)
End If
Dim request As HttpWebRequest = WebRequest.Create(args(0))
request.CookieContainer = New CookieContainer()
Using response As HttpWebResponse = request.GetResponse()
' Print the properties of each cookie.
For Each cook As Cookie 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 {If(cook.Version = 1, 2109, 2965)}")
' Show the string representation of the cookie.
Console.WriteLine($"String: {cook}")
Next
End Using
End Sub
End Class
' 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
'
注解
谨慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已过时,不应将其用于新开发。 请改用 HttpClient。
CookieContainer 属性提供包含与此请求关联的 cookie 的 CookieContainer 类的实例。
默认情况下,CookieContainernull
。 必须将 CookieContainer 对象分配给该属性,才能在 GetResponse 方法返回的 HttpWebResponseCookies 属性中返回 cookie。
注意
出于安全原因,默认情况下会禁用 Cookie。 如果要使用 Cookie,请使用 CookieContainer 属性启用 Cookie。