HttpListenerResponse.SetCookie(Cookie) 方法
定义
public:
void SetCookie(System::Net::Cookie ^ cookie);
public void SetCookie (System.Net.Cookie cookie);
member this.SetCookie : System.Net.Cookie -> unit
Public Sub SetCookie (cookie As Cookie)
参数
例外
cookie 为 null。cookie is null.
该 Cookie 已经在集合中,无法替换。The cookie already exists in the collection and could not be replaced.
示例
下面的代码示例演示如何调用此方法。The following code example demonstrates calling this method.
// This example requires the System and System.Net namespaces.
public static void SimpleCookieExample(string[] prefixes)
{
// Create a listener.
HttpListener listener = new HttpListener();
// Add the prefixes.
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
}
listener.Start();
Console.WriteLine("Listening...");
// Note: The GetContext method blocks while waiting for a request.
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
// This application sends a cookie to the client marking the time
// they visited.
Cookie timeStampCookie = new Cookie("VisitDate", DateTime.Now.ToString());
// Obtain a response object.
HttpListenerResponse response = context.Response;
// Add the cookie to the response.
response.SetCookie(timeStampCookie);
// Construct a response.
string responseString = "<HTML><BODY> Hello world!</BODY></HTML>";
response.ContentEncoding = System.Text.Encoding.UTF8;
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
// Send the response.
response.Close(buffer, true);
listener.Stop();
}
' This example requires the System and System.Net namespaces.
Public Shared Sub SimpleCookieExample(ByVal prefixes As String())
' Create a listener
Dim listener As HttpListener = New HttpListener()
' Add the prefixes
For Each s As String In prefixes
listener.Prefixes.Add(s)
Next
listener.Start()
Console.WriteLine("Listening...")
' Note: The GetContext method blocks while waiting for a request.
Dim context As HttpListenerContext = listener.GetContext()
Dim request As HttpListenerRequest = context.Request
' This application sends a cookie to the client marking the time
' they visited.
Dim timeStampCookie As Cookie = New Cookie("VisitDate", DateTime.Now.ToString())
' Obtain a response object.
Dim response As HttpListenerResponse = context.Response
' Add the cookie to the response.
response.SetCookie(timeStampCookie)
' Construct a response.
Dim responseString As String = "<HTML><BODY> Hello world!</BODY></HTML>"
response.ContentEncoding = System.Text.Encoding.UTF8
Dim buffer As Byte() = System.Text.Encoding.UTF8.GetBytes(responseString)
' Send the response.
response.Close(buffer, True)
listener.Stop()
End Sub
注解
如果两个 cookie 的、和属性的值相同,则将其视为相同 Name Domain Path 。Two cookies are considered the same if the values of their Name, Domain, and Path properties are the same. 如果这三条信息是相同的,则该方法会尝试更新 cookie。If these three pieces of information are the same, the method attempts to update the cookie. 名称和域比较不区分大小写,但路径比较区分大小写。The name and domain comparisons are not case sensitive, but the path comparison is case sensitive.