我使用以下方法获得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>
现在当我发布上面的字符串时,我得到了一个成功的回复 服务器。
为什么我必须手动包装字符串才能使其正常工作。是 有一种方法,我可以实现发布一个字符串而不做 以上手动。
答案 0 :(得分:0)
我所知道的另一种方法是使用stream作为输入参数。 e.g。
[WebInvoke]
string GetDataFromStringAsString(stream xmlString);
.Net 4 WCF REST的问题在于,从根本上说,WCF只知道如何传递两种类型的信息,XML或字节流。就个人而言,我会使用WCF Web API而不是标准的WCF REST库,因为您将遇到更多此类问题。