I'm trying to use .NET HttpListener in a C# project. When I register my prefix "http://*:8080/" it does not seem to work for HTTPS urls (i.e. doesn't pick them up). When I try the following code to register both the HTTP and HTTPS versions of the prefix however I get the error:
"Failed to listen on prefix 'https://:8080/' because it conflicts with an existing registration on the machine."*
How can I get my prefix working for both HTTP & HTTPS?
private HttpListener _listener;
// Create prefixes
var prefixes = new List<string>();
prefixes.Add("http://*:8080/");
prefixes.Add("https://*:8080/");
// Create HttpListener
_listener = new HttpListener();
foreach (string prefix in prefixes)
{
_listener.Prefixes.Add(prefix);
}
_listener.Start(); // <== ERROR HERE
EDIT 1 - Additional clarification:
thanks
OBJECTIVE: Try to find a way for my program to listen to both HTTP and HTTPS on the same port.
You can't do this with HTTPListener. You'll need to use a TCPListener and handle each response conditionally depending on whether it is HTTP or HTTPS.
I'm pretty sure if you use one HTTPListener for HTTP 8080 and one for HTTPS 8443 you should be able to make your browser use yourproxy:8080 for HTTP and yourproxy:8443 for HTTPS. Firefox definitely let's you do this.