0

次の方法で 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 リクエストを返します。それを機能させるために、以下に示すように、上記の文字列を要素にラップする必要がありました。

<string xmlns="http://schemas.microsoft.com/2003/10/ 
Serialization/">Hello World</string> 

上記の文字列を投稿すると、サーバーから成功の応答が返されます。

文字列を機能させるために手動でラップする必要があるのはなぜですか。上記を手動で行わずに文字列を投稿する方法はありますか。

4

1 に答える 1

0

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

[WebInvoke] 
string GetDataFromStringAsString(stream xmlString);

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

于 2011-10-28T11:11:16.340 に答える