url 段为 json 字符串时访问 WCF Rest 服务 (WebGet) 时未找到 404
Not found 404 while accessing WCF Rest service (WebGet) when url segment is json string
在我的项目中,我必须将动态 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)
我在{queryString}参数中使用了通配符(*),意思是"the rest of the URI"
https://msdn.microsoft.com/en-us/library/bb675245.aspx
[OperationContract]
[WebGet(UriTemplate = "api/queries/{*queryString}",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
Response Query(string queryString);
在我的项目中,我必须将动态 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)
我在{queryString}参数中使用了通配符(*),意思是"the rest of the URI"
https://msdn.microsoft.com/en-us/library/bb675245.aspx
[OperationContract]
[WebGet(UriTemplate = "api/queries/{*queryString}",
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
Response Query(string queryString);