HttpListenerResponse.CopyFrom(HttpListenerResponse) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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)
Parameters
- templateResponse
- HttpListenerResponse
The HttpListenerResponse instance to copy.
Examples
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
Remarks
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.