WCF使用webHttpBinding - 如何获取参数?

时间:2011-12-13 10:32:21

标签: c# wcf post

我有一个名为“test”的简单wcf方法(为webHttpBinding配置了wcf服务)

我可以在没有参数的情况下对它进行HTTP POST,但是我想将它作为单个参数只发送一个字符串,但似乎无法实现这一点?

例如,方法test(string s){};

我尝试使用数据test'hello world''&s=hello world'发帖无效。

编辑:test的界面如下所示:

[OperationContract]
[WebInvoke(UriTemplate = "test", Method = "POST", RequestFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare)]
string test(string s);

2 个答案:

答案 0 :(得分:1)

test(string s)更改为test(Stream s)修复此问题。

答案 1 :(得分:-1)

您可以尝试将此帖子作为请求正文的一部分发布:

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

你可以从小提琴手那里试试。或者,如果要从.NET CLient发布,请使用以下代码@

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);

您需要下载名为RestSharp的API才能使上述代码正常工作