私は2つの方法で以下のようにRESTfulなサービスを構築していますへのクライアントのパスパラメータ(注:私はASPNETCompatilibilityModeがtrueに設定されている):今すぐどのようにRESTfulなWCFサービス
[WebInvoke]
string TestMethodA()
{
string test = HttpContext.Current.Request.Form["xml"];
}
[WebInvoke]
string TestMethodB(string res)
{
string xml = res;
}
でクライアントを構築MethodAにパラメータを渡すために、私は次のようにします。
request.AddParameter("xmlString", HttpUtility.HtmlEncode(requestBody));
そしてMethodBにメッセージを送信するために、私は次のようにします。
request.AddParameter("text/xml",requestBody, ParameterType.RequestBody);
質問は次のとおりです。
パラメータの受け渡し方法をクライアントはどのように知っていますか?クライアントはサーバーの実装を認識していません。
リクエストを送信するクライアントはRestSharp APIを使用しています。
サービスではインフラストラクチャ(この場合はリクエスト本体に表示されるHTTP)が一般的に理想的ではないことを認識しています。なぜ、TestMethodAを文字列にして、常にあなたのメソッドを同じ方法で呼び出すのではないでしょうか?そうすれば、サービスはhttpバインディングでホストされていなくても動作し、クライアントはサービスを呼び出す方法を知る必要がある方法の1つしかありません。 – kmp