我正在访问一个需要使用自定义协议而非http的URL的Web服务器。虽然我尝试注册我的协议,但并没有太多关于如何使其工作的文档。该Web服务器提供标准的HTTP响应,但如果请求不以custom://而是以http://开头,它将无法正常工作。由于这最终仍然是HTTP,因此我希望只使用基础功能中的WebRequest,但我需要一种方法以我的自定义协议URL提交请求。我像这样进行注册:
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)
...
有什么想法可以让这个工作起来吗?