【发布时间】:2016-10-20 05:21:23
【问题描述】:
在我的项目中,我必须将动态 Json 字符串传递给 WCF Rest 服务 Web 获取。
当我传递一些字符串时,一切正常。
http://localhost:58014/MyService.svc/api/queries/somestirng
但是当我将 json 字符串作为 url 段传递时,会发生错误。
{"Key":"UserHomePageInfoQuery","Message":"{\"UserName\":\"usr83\"}"}
这是我的服务运营合同定义
[OperationContract]
[WebGet(UriTemplate = "api/queries/{queryString}",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
Response Query(string queryString);
我知道我可以使用 POST,但所有服务请求都是查询
我有另一个 POST 命令服务
[OperationContract]
[WebInvoke(UriTemplate = "api/commands/",
Method = "POST",
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
Response Execute(Request request)
【问题讨论】:
-
它一定是GET吗?您可以简单地 POST JSON 字符串。
-
是的,因为只有查询操作通过这个服务。我有另一个命令服务作为 post
-
不是也可以把
WebGet改成WebInvoke吗?还是要求,此方法应仅接受 GET? -
是的。它应该只接受 GET。为了清楚起见,我编辑问题