HttpListenerResponse.CopyFrom(HttpListenerResponse) 메서드

정의

지정된 HttpListenerResponse의 속성을 이 응답에 복사합니다.Copies properties from the specified HttpListenerResponse to this response.

public:
 void CopyFrom(System::Net::HttpListenerResponse ^ templateResponse);
public void CopyFrom (System.Net.HttpListenerResponse templateResponse);
member this.CopyFrom : System.Net.HttpListenerResponse -> unit
Public Sub CopyFrom (templateResponse As HttpListenerResponse)

매개 변수

templateResponse
HttpListenerResponse

복사할 HttpListenerResponse 인스턴스입니다.The HttpListenerResponse instance to copy.

예제

다음 코드 예제에서는 템플릿 응답을 복사 하 여 응답을 만드는 방법을 보여 줍니다.The following code example demonstrates creating a response by copying a template response.

static string message403;
static HttpListenerResponse preMade403Response;
static void SendBadCertificateResponse(HttpListenerResponse response)
{
    if (preMade403Response == null)
    {
        // Set up an authentication error response template.
        response.StatusCode = (int)HttpStatusCode.Forbidden;
        response.StatusDescription = "403 Forbidden";
        response.ProtocolVersion = new Version("1.1");
        response.SendChunked = false;

        preMade403Response = response;
    }
    else
    {
        response.CopyFrom(preMade403Response);
    }

    // The response body cannot be saved in the template.

    StringBuilder message = new StringBuilder();
    message.Append("<HTML><BODY>");
    message.Append("<p> Error message 403: Access is denied due to a missing or invalid client certificate.</p>");
    message.Append("</BODY></HTML>");
    message403 = message.ToString();

    // Turn the error message into a byte array using the 
    // encoding from the response when present.
    System.Text.Encoding encoding = response.ContentEncoding;
    if (encoding == null)
    {
        encoding = System.Text.Encoding.UTF8;
        response.ContentEncoding = encoding;
    }

    byte[] buffer = encoding.GetBytes(message403);
    response.ContentLength64 = buffer.Length;
    // Write the error message.
    System.IO.Stream stream = response.OutputStream;
    stream.Write(buffer, 0, buffer.Length);
    // Send the response.
    response.Close();
}
Private Shared message403 As String
Private Shared preMade403Response As HttpListenerResponse
Private Shared Sub SendBadCertificateResponse(ByVal response As HttpListenerResponse)
    
    If preMade403Response Is Nothing Then
        ' Set up an authentication error response template.
        response.StatusCode = Cint(HttpStatusCode.Forbidden)
        response.StatusDescription = "403 Forbidden"
        response.ProtocolVersion = New Version("1.1")
        response.SendChunked = False
    Else
        response.CopyFrom(preMade403Response) 
    End If
    
    ' The response body cannot be saved in the template.
    Dim message As New StringBuilder()
    message.Append("<HTML><BODY>")
    message.Append("<p> Error message 403: Access is denied due to a missing or invalid client certificate.</p>")
    message.Append("</BODY></HTML>")
    message403 = message.ToString()

    ' Turn the error message into a byte array using the 
    ' encoding from the response when present.
    Dim encoding As System.Text.Encoding = response.ContentEncoding
    If encoding Is Nothing Then
        encoding = System.Text.Encoding.UTF8
        response.ContentEncoding = encoding
    End If

    Dim buffer() As Byte = encoding.GetBytes(message403)
    response.ContentLength64 = buffer.Length
    ' Write the error message.
    Dim stream As System.IO.Stream = response.OutputStream
    stream.Write(buffer, 0, buffer.Length)
    ' Send the response.
    response.Close()
End Sub

설명

대부분의 속성을 기본값에서 고정 된 새 값 집합으로 정기적으로 변경 하는 경우 HttpListenerResponse 인스턴스를 템플릿으로 사용 하는 것이 편리 합니다.If you regularly change many properties from their default values to a fixed set of new values, it is convenient to use an HttpListenerResponse instance as a template. 템플릿 응답을 한 번 사용자 지정 하 고 각 응답을 개별적으로 구성 하는 대신 CopyFrom 메서드를 호출 하 여 템플릿 응답의 속성 값을 기반으로 새 응답을 구성 합니다.Customize the template response once and, instead of configuring each response separately, call the CopyFrom method to configure a new response based on property values in the template response.

templateResponse에서 현재 인스턴스로 복사 되는 속성은 다음과 같습니다.The following properties are copied from templateResponse to the current instance.

적용 대상

추가 정보