HttpListenerResponse.SetCookie(Cookie) 方法

定义

添加或更新随此响应发送的 Cookie 集合中的 CookieAdds or updates a Cookie in the collection of cookies sent with this response.

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
Cookie

此响应的 CookieA Cookie for this response.

例外

cookienullcookie 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 PathTwo 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.

适用于

另请参阅