POSTアクション中に文字列パラメータをRESTfulなサービスに渡す

私は次のメソッドでRESTfulなサービスを持っています:

[WebInvoke] 
string GetDataFromStringAsString(string xmlString); 

メソッドへの私のクライアント呼び出しは以下の通りです:

var client = new RestClient(); 
client.BaseUrl = serviceBaseUrl; 
var request = new RestRequest(method){RequestFormat = DataFormat.Xml}; 
request.Resource = resourceUrl; 
request.AddParameter("text/xml", requestBody, 
ParameterType.RequestBody); 
var response = client.Execute(request); 

文字列を "Hello World"として投稿しましょう。

上記のメソッドに投稿する文字列は、私に400 Badを与えます 要求。それを動作させるために、私は上記の文字列を 以下に示すような要素:

Hello World 

今すぐ上の文字列を投稿すると、私は成功応答を返します サーバー。

なぜ私は手動で動作させるために文字列をラップする必要があります。は そこに私は文字列をポストすることを達成することができます 手動で上記

0

1 答え

私が知っている唯一の他の方法は、ストリームを入力パラメーターとして使用することです。例えば

[WebInvoke] 
string GetDataFromStringAsString(stream xmlString);

.Net 4 WCF RESTの問題は、基本的にWCFがXMLまたはバイトストリームの2種類の情報を渡す方法しか知っていないことです。個人的には、標準のWCF RESTライブラリの代わりにWCF Web APIを使用します。なぜなら、これらの種類の問題の多くを実行するためです。

0
追加された
@Rajeshあなたがストリームを使うなら、クライアントは望むものを何でも送ることができます。クライアントが指定したContent-Typeを読み取り、バイトのストリームを適切に解釈するのは、あなたのサービスです。
追加された 著者 Darrel Miller,
@Rajeshクライアントはたくさんのバイトを送信します。クライアントがバイトの束を保持するために使用するタイプは違いはありません。使用されるcontent-typeは、クライアントとサーバーの間で、それらのバイトの意味をどのように解釈するかについての合意です。 .Net型はRESTサービスとは無関係です。
追加された 著者 Darrel Miller,
こんにちはダレル、はい私は他の代替ストリームやXElementを使用することも知っている。しかし、私はクライアントであると仮定し、サービス上のメソッドが型文字列またはストリームまたはXElementを使用するかどうかはわかりません。これらのシナリオではどうすればよいですか?
追加された 著者 Rajesh,
こんにちはダレル、私はサービスを呼び出す必要があるクライアントです。そのストリームか文字列かXElementかどうかをどのように知っていますか?
追加された 著者 Rajesh,
こんにちはDarrel、それは、サービスに電話をかけるときにいつも値をバイトとして送る方が良いということですか?
追加された 著者 Rajesh,