複数の入力とオブジェクトを受け取る複雑な WCF Rest サービスがあります。提供するデータが多すぎるため、Fiddler で HTTP POST を実行して単純に呼び出すことはできません (可能ですが、永遠に時間がかかります)。そのため、プロキシを使用してコードで実行したいと思います。.NET 4 WCF Rest Service のプロキシを生成する方法はありますか? それ以外の場合、サービスを簡単にテストできるようにするために何を提案しますか?
ありがとう。
WCF REST サービス用のプロキシを作成する標準的な方法はありません (REST 用の WSDL はありません。新しい標準の 1 つである WADL は広く採用されておらず、WCF はそれをサポートしていません)。テスト目的で、インターフェイスをクライアントと共有し、ChannelFactory<T> を使用してファクトリの Endpoint プロパティで適切な動作を設定するか、それを行うヘルパー クラス WebChannelFactory<T> を使用する必要があります。
インターフェイスが ITest と呼ばれると仮定すると、次のようになります。
Uri serviceUri = new Uri("http://my.service.com/endpoint");
WebChannelFactory<ITest> factory = new WebChannelFactory<ITest>(serviceUri);
ITest proxy = factory.CreateChannel();
Assert.AreEqual(9, proxy.Add(4, 5));
現在、WCF RESTサービスを使用してプロキシを作成する標準的な方法はありませんが、RESTスターターキットの「XMLをタイプとして貼り付ける」ツールを使用してこれを行うことができます。これは、デフォルトのWCF / helpページに表示されるxmlから機能し、構造に一致して使用できるC#クラスを生成します。また、このビデオをチェックして、実際の動作を確認してください-3分で消費者向けTwitter。
非 RESTful WCF サービスの場合と同じ手順を使用して、プロキシを作成できます。
// Create the proxy
ChannelFactory<IContract> channelFactory = new ChannelFactory<IContract>("endpointName");
var restfulProxy = factory.CreateChannel();
// Invoke a method
var response = proxy.MyRestfulMethod("param1", "param2");
svcutil.exeは、呼び出し元のアプリケーションで使用できるプロキシ クラスを作成します。これにより、適切なメソッドを呼び出し、コードでパラメーターを渡すことができます。