HttpListenerResponse.AppendCookie(Cookie) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 응답에 대한 쿠키의 컬렉션에 지정된 Cookie를 추가합니다.
public:
void AppendCookie(System::Net::Cookie ^ cookie);
public void AppendCookie (System.Net.Cookie cookie);
member this.AppendCookie : System.Net.Cookie -> unit
Public Sub AppendCookie (cookie As Cookie)
매개 변수
예외
cookie
이(가) null
인 경우
예제
다음 코드 예제에서는 응답에 쿠키를 추가하는 방법을 보여 줍니다.
// This example requires the System and System.Net namespaces.
public static string NextCustomerID()
{
// A real-world application would do something more robust
// to ensure uniqueness.
return DateTime.Now.ToString();
}
public static void SimpleListenerCookieExample(string[] prefixes)
{
// Create a listener.
HttpListener listener = new HttpListener();
// Add the prefixes.
foreach (string s in prefixes)
{
listener.Prefixes.Add(s);
}
listener.IgnoreWriteExceptions = true;
listener.Start();
Console.WriteLine("Listening...");
// Note: The GetContext method blocks while waiting for a request.
HttpListenerContext context = listener.GetContext();
HttpListenerRequest request = context.Request;
string customerID = null;
// Did the request come with a cookie?
Cookie cookie = request.Cookies["ID"];
if (cookie != null)
{
customerID=cookie.Value;
}
if (customerID !=null)
{
Console.WriteLine("Found the cookie!");
}
// Get the response object.
HttpListenerResponse response = context.Response;
// If they didn't provide a cookie containing their ID, give them one.
if (customerID == null)
{
customerID = NextCustomerID();
Cookie cook = new Cookie("ID", customerID );
response.AppendCookie (cook);
}
// Construct a response.
string responseString = "<HTML><BODY> Hello " + customerID + "!</BODY></HTML>";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
// Get the response stream and write the response to it.
response.ContentLength64 = buffer.Length;
System.IO.Stream output = response.OutputStream;
output.Write(buffer,0,buffer.Length);
// You must close the output stream.
output.Close();
// Closing the response sends the response to the client.
response.Close();
listener.Stop();
}
' This example requires the System and System.Net namespaces.
Public Shared Function NextCustomerID() As String
' A real-world application would do something more robust
' to ensure uniqueness.
Return DateTime.Now.ToString()
End Function
Public Shared Sub SimpleListenerCookieExample(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.IgnoreWriteExceptions = True
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
Dim customerID As String = Nothing
' Did the request come with a cookie?
Dim cookie As Cookie = request.Cookies("ID")
If cookie IsNot Nothing Then
customerID = cookie.Value
End If
If customerID IsNot Nothing Then
Console.WriteLine("Found the cookie!")
End If
' Get the response object.
Dim response As HttpListenerResponse = context.Response
' If they didn't provide a cookie containing their ID, give them one.
If customerID Is Nothing Then
customerID = NextCustomerID()
Dim cook As Cookie = New Cookie("ID", customerID)
response.AppendCookie(cook)
End If
' Construct a response.
Dim responseString As String = "<HTML><BODY> Hello " & customerID & "!</BODY></HTML>"
Dim buffer As Byte() = System.Text.Encoding.UTF8.GetBytes(responseString)
' Get the response stream and write the response to it.
response.ContentLength64 = buffer.Length
Dim output As System.IO.Stream = response.OutputStream
output.Write(buffer, 0, buffer.Length)
' You must close the output stream.
output.Close()
response.Close()
listener.Stop()
End Sub
설명
이 메서드를 호출하는 것은 속성에서 반환된 Add 컬렉션에서 메서드를 호출하는 Cookies 것과 같습니다.
지정된 쿠키가 속성의 컬렉션 cookie
에 Cookies 없으면 가 추가됩니다. 쿠키가 컬렉션 cookie
에 있는 경우 을 바꿉니다.
적용 대상
추가 정보
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET