Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

HttpListenerResponse.OutputStream Property

Gets a Stream object to which a response can be written.

Namespace: System.Net
Assembly: System (in system.dll)

public Stream OutputStream { get; }
/** @property */
public Stream get_OutputStream ()

public function get OutputStream () : Stream

Not applicable.

Property Value

A Stream object to which a response can be written.
Exception typeCondition

ObjectDisposedException

This object is closed.

The ContentLength64 property must be set explicitly before writing to the returned Stream object.

NoteNote:

Closing the request does not close the stream returned by this property. When you no longer need the stream, you should close it by calling the Close method.

The following code example demonstrates calling this method.

// This example requires the System and System.Net namespaces.
public static string ClientInformation(HttpListenerContext context)
{
    System.Security.Principal.IPrincipal user = context.User;
    System.Security.Principal.IIdentity id = user.Identity;
    if (id == null)
    {
        return "Client authentication is not enabled for this Web server.";
    }
    
    string display;
    if (id.IsAuthenticated)
    {
        display = String.Format("{0} was authenticated using {1}", id.Name, 
            id.AuthenticationType);
    }
    else
    {
       display = String.Format("{0} was not authenticated", id.Name);
    }
    return display;
}

public static void SimpleListenerWithAuthentication(string[] prefixes)
{
    if (!HttpListener.IsSupported)
    {
        Console.WriteLine ("Windows XP SP2 or Server 2003 is required to use the HttpListener class.");
        return;
    }

    // URI prefixes are required,
    // for example "http://contoso.com:8080/index/".
    if (prefixes == null || prefixes.Length == 0)
      throw new ArgumentException("prefixes");

    // Set up a listener.
    HttpListener listener = new HttpListener();
    foreach (string s in prefixes)
    {
        listener.Prefixes.Add(s);
    }
    listener.Start();
    // Specify Negotiate as the authentication scheme.
    listener.AuthenticationSchemes = AuthenticationSchemes.Negotiate;
    Console.WriteLine("Listening...");
    // GetContext blocks while waiting for a request. 
    HttpListenerContext context = listener.GetContext();
    HttpListenerRequest request = context.Request;
    // Obtain a response object.
    HttpListenerResponse response = context.Response;
    // Construct a response.
    string clientInformation = ClientInformation(context);
    byte[] buffer = System.Text.Encoding.UTF8.GetBytes("<HTML><BODY> " + clientInformation + "</BODY></HTML>");
    // Get a response stream and write the response to it.
    response.ContentLength64 = buffer.Length;
    System.IO.Stream output = response.OutputStream;
    output.Write(buffer,0,buffer.Length);
    output.Close();
    listener.Stop();
}

// This example requires the System and System.Net namespaces.
public static String ClientInformation(HttpListenerContext context)
{
    System.Security.Principal.IPrincipal user = context.get_User();
    System.Security.Principal.IIdentity id = user.get_Identity();
    if (id == null) {
        return "Client authentication is not enabled for this Web server.";
    }
    String display;
    if (id.get_IsAuthenticated()) {
        display = String.Format("{0} was authenticated using {1}", 
            id.get_Name(), id.get_AuthenticationType());
    }
    else {
        display = String.Format("{0} was not authenticated", id.get_Name());
    }
    return display;
} //ClientInformation

public static void SimpleListenerWithAuthentication(String prefixes[])
{
    if (!(HttpListener.get_IsSupported())) {
        Console.WriteLine("Windows XP SP2 or Server 2003 is required to "  
            + "use the HttpListener class.");
        return;
    }
    // URI prefixes are required,
    // for example "http://contoso.com:8080/index/".
    if (prefixes == null || prefixes.get_Length() == 0) {
        throw new ArgumentException("prefixes");
    }

    // Set up a listener.
    HttpListener listener = new HttpListener();
    for (int iCtr = 0; iCtr < prefixes.get_Length(); iCtr++) {
        String s = prefixes[iCtr];
        listener.get_Prefixes().Add(s);
    }
    listener.Start();

    // Specify Negotiate as the authentication scheme.
    listener.set_AuthenticationSchemes(AuthenticationSchemes.Negotiate);
    Console.WriteLine("Listening...");
    // GetContext blocks while waiting for a request. 
    HttpListenerContext context = listener.GetContext();
    HttpListenerRequest request = context.get_Request();
    // Obtain a response object.
    HttpListenerResponse response = context.get_Response();
    // Construct a response.
    String clientInformation = ClientInformation(context);
    ubyte buffer[] = System.Text.Encoding.get_UTF8().GetBytes(
          "<HTML><BODY> " + clientInformation + "</BODY></HTML>");
    // Get a response stream and write the response to it.
    response.set_ContentLength64(buffer.get_Length());
    System.IO.Stream output = response.get_OutputStream();
    output.Write(buffer, 0, buffer.get_Length());
    output.Close();
    listener.Stop();
} //SimpleListenerWithAuthentication

Windows 98, Windows Server 2003, Windows XP Media Center Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.