HttpListenerResponse.CopyFrom Method
Copies properties from the specified HttpListenerResponse to this response.
Namespace: System.Net
Assembly: System (in System.dll)
Parameters
- templateResponse
- Type: System.Net.HttpListenerResponse
The HttpListenerResponse instance to copy.
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. 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.
The following properties are copied from templateResponse to the current instance.
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(); }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.