Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use of HttpListener

Tags:

c#

http

I have the following HTTP listener method, greatly inspired by MSDN's example use of the HttpListener class. I'm fairly new to programming and I'm not sure where to go from here to initialize it from my Main(). Any suggestions?

 public static void HttpListener(string[] prefixes)
    {
        if (prefixes == null || prefixes.Length == 0)
            throw new ArgumentException("Prefixes needed");

        HttpListener listener = new HttpListener();

        foreach (string s in prefixes)
        {
            listener.Prefixes.Add(s);
        }
        listener.Start();
        Console.WriteLine("Listening..");

        HttpListenerContext context = listener.GetContext();
        HttpListenerRequest request = context.Request;
        HttpListenerResponse response = context.Response;

        string responseString = "<HTML><BODY> Test </BODY></HTML>";
        byte[] buffer = Encoding.UTF8.GetBytes(responseString);

        response.ContentLength64 = buffer.Length;
        Stream output = response.OutputStream;
        output.Write(buffer, 0, buffer.Length);

        output.Close();
        listener.Stop();
    }
like image 888
Khaine775 Avatar asked Oct 02 '14 08:10

Khaine775


1 Answers

You seem to have removed the comments that are mentioned on the MSDN HttpListener Class page:

// URI prefixes are required, for example "http://contoso.com:8080/index/".

So just call it like that:

public static void Main(string[] args)
{
    HttpListener(new[] { "http://localhost/" });
}

But please note this example will handle only one request and then exit. If your follow-up question is then "How can I make it handle multiple requests?", see Handling multiple requests with C# HttpListener.

like image 180
CodeCaster Avatar answered Sep 23 '22 11:09

CodeCaster