Я получаю доступ к веб-серверу, для которого требуется собственный протокол, а не http в URL-адресе. Я пытался зарегистрировать свой протокол, но документации о том, как это сделать, мало. Веб-сервер обслуживает стандартные HTTP-ответы, но если запрос не добавляется с помощью custom: // вместо http: //, он не будет работать. Я хотел бы просто использовать базовые функции WebRequest, так как это в конечном итоге HTTP, однако мне нужен способ отправить запрос с помощью моего собственного URL-адреса протокола. Я зарегистрировать его, как это:Регистрация пользовательского протокола с помощью WebRequest
WebRequest.RegisterPrefix("custom", new CustomWebRequestCreator());
Но тогда, когда я иду, чтобы создать WebRequest, в то время как он возвращает свой собственный класс, после этого кода:
Uri uri = new Uri("custom://192.168.0.122:94934/resource");
System.Net.WebRequest request = WebRequest.Create(uri);
отладчик говорит, что запрос на самом деле мой пользовательский класс, но затем я получаю это исключение:
System.NotImplementedException was unhandled
HResult=-2147467263
Message=This method is not implemented by this class.
Source=System
StackTrace:
at System.Net.WebRequest.GetResponse()
...
Когда я пытаюсь просто передать мой URL в WebRequest.Create() без регистрации префикса, я получаю это исключение:
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)
...
Любая идея, как я могу заставить это работать?