Próbuję użyć .NET HttpListener w projekcie C#. Kiedy rejestruję swój prefiks "http: // *: 8080 /", nie działa on dla adresów URL HTTPS (tzn. Nie odbiera ich). Kiedy próbuję następujący kod do rejestracji zarówno HTTP i HTTPS wersje prefiksu jednak pojawia się błąd:.NET HttpListener: podczas rejestrowania zarówno HTTP, jak i HTTPS pojawia się "konflikt z istniejącą rejestracją na komputerze"
„Nie można słuchać na przedrostek«https: //: 8080 /», ponieważ jest ono sprzeczne ze związkiem istniejąca rejestracja na komputerze. "*
W jaki sposób mogę uzyskać mój prefiks pracujący dla obu protokołów 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 - dodatkowe wyjaśnienie:
- Program działa jako lokalny serwer proxy dla aplikacji PC dokonywania HTTP (S) woła.
- Sposób użycia polega więc na zmianie ustawień proxy przeglądarki tak, aby wskazywał na ten lokalny serwer proxy (np. Localhost: 8080).
- Oznacza to (zakładam), że HttpListener musi nasłuchiwać zarówno ruchu HTTP, jak i HTTPS na tym samym porcie lokalnym (np. 8080).
- CEL: Spróbuj znaleźć sposób, aby mój program słuchał zarówno HTTP, jak i HTTPS na tym samym porcie.
dzięki
Właśnie rozpocząłem nagrodę dla kogoś, kto może dać mi przykładowy kod, który kompiluje i działa, co pozwala słuchać zarówno HTTP, jak i HTTPS na tym samym porcie. – Greg