我正在开发一个 WCF 休息服务,该服务需要接收 NAme 值对值的列表。这些值尚不清楚,因此我们需要使用名称值对的通用列表。
我尝试了多种方法,但我不确定最好的方法是什么。我想我可以访问 HttpContext 并从请求正文中提取值,但我无法做到这一点。
让 WCF 操作接受带有名称值对列表的 HTTP Post 以便可以在操作中读取它们的最佳方法是什么,类似于您将它从 Request["Key"] 中取出的方式?
最佳答案
一种选择是创建一个 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);
关于带有字典参数的 WCF HTTP POST Rest 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315065/