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
屬性值
CookieContainer,其中包含與此要求相關聯的Cookie。
範例
下列程式代碼範例會將要求傳送至 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 屬性會提供 CookieContainer 類別的實例,其中包含與此要求相關聯的 Cookie。
默認會 null
CookieContainer。 您必須將 CookieContainer 物件指派給 屬性,讓 GetResponse 方法傳回之 HttpWebResponse 的 Cookies 屬性中傳回 Cookie。
注意
基於安全性考慮,預設會停用 Cookie。 如果您想要使用 Cookie,請使用 CookieContainer 屬性來啟用 Cookie。