Uzyskuję dostęp do serwera WWW wymagającego niestandardowego protokołu zamiast adresu http w adresie URL. Próbowałem zarejestrować mój protokół, ale nie ma zbyt wiele dokumentacji, jak to zrobić. Serwer WWW obsługuje standardowe odpowiedzi HTTP, ale jeśli żądanie nie jest poprzedzone niestandardowym: // zamiast http: //, nie będzie działać. Chciałbym po prostu użyć podstawowej funkcji WebRequest, ponieważ jest to ostatecznie HTTP, jednak potrzebuję sposobu na przesłanie żądania z moim niestandardowym adresem URL protokołu. I zarejestrować go tak:Zarejestruj protokół niestandardowy za pomocą składnika WebRequest
WebRequest.RegisterPrefix("custom", new CustomWebRequestCreator());
Ale wtedy, kiedy idę do stworzenia WebRequest, natomiast zwraca moją niestandardową klasę po tym kodzie:
Uri uri = new Uri("custom://192.168.0.122:94934/resource");
System.Net.WebRequest request = WebRequest.Create(uri);
Debuger mówi, że wniosek jest rzeczywiście moim niestandardowy klasy, ale następnie otrzymuję ten wyjątek:
System.NotImplementedException was unhandled
HResult=-2147467263
Message=This method is not implemented by this class.
Source=System
StackTrace:
at System.Net.WebRequest.GetResponse()
...
Kiedy próbuję tylko przekazać mój adres URL do WebRequest.Create() bez rejestracji prefiks, otrzymuję ten wyjątek:
System.NotSupportedException was unhandled
HResult=-2146233067
Message=The URI prefix is not recognized.
Source=System
StackTrace:
at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
at System.Net.WebRequest.Create(Uri requestUri)
...
Masz pomysł, jak to osiągnąć?