5

URL に http ではなくカスタム プロトコルを必要とする Web サーバーにアクセスしています。プロトコルを登録しようとしましたが、これを機能させる方法に関するドキュメントはあまりありません。Web サーバーは標準の HTTP 応答を提供しますが、要求の先頭に http:// ではなく custom:// が付加されていないと、機能しません。これは最終的には 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)
   ...

これを機能させる方法はありますか?

4

1 に答える 1