带有Dictionary参数的WCF HTTP POST Rest服务

时间:2012-07-03 16:16:51

标签: wcf rest post

我正在开发一个WCF休息服务,需要接受一组NAme值的值。这些值尚不清楚,因此我们需要使用名称值对的通用列表。

我尝试了多种方法,但我不确定最好的方法是什么。我想我可以访问HttpContext并从请求体中提取值,但我无法做到这一点。

使用带有名称值列表对的HTTP Post接收WCF操作的最佳方法是什么,以便可以在操作中读取它们,类似于将其从Request [“Key”]中拉出来的操作?

1 个答案:

答案 0 :(得分:9)

一个选项是创建一个JSON对象,以类似于:

的格式发布到服务
{"kvPairs":[{"Key":"key1","Value":"value1"}, {"Key":"key2","Value":"value2"}]}

在服务方面,设置类似于以下的方法:

[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "")]
string DoSomething(Dictionary<string, string> kvPairs);