在POST操作期间将字符串参数传递给RESTful服务

时间:2011-10-28 10:18:01

标签: wcf rest wcf-rest restsharp

我使用以下方法获得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> 

现在当我发布上面的字符串时,我得到了一个成功的回复 服务器。

为什么我必须手动包装字符串才能使其正常工作。是 有一种方法,我可以实现发布一个字符串而不做 以上手动。

1 个答案:

答案 0 :(得分:0)

我所知道的另一种方法是使用stream作为输入参数。 e.g。

[WebInvoke] 
string GetDataFromStringAsString(stream xmlString);

.Net 4 WCF REST的问题在于,从根本上说,WCF只知道如何传递两种类型的信息,XML或字节流。就个人而言,我会使用WCF Web API而不是标准的WCF REST库,因为您将遇到更多此类问题。

相关问题