如何像这样设置UriTepmlate Attr:
/ FunctionName {json_data}
因为使用此网络服务的人打算这样打电话
例如: http://localhost/xxx/service/Func { “×”: “AAA”, “Y”: “BBB”}?
我试过了
[OperationContract]
[WebGet(UriTemplate = "/Func?{request}",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
Result Func(string request);
比我错了:
UriTemplate'/ Func?{request}'无效;查询字符串的每个部分必须是'name'形式或'name = value'形式,其中name是一个简单的文字。有关更多详细信息,请参阅UriTemplate的文档。 参数名称:模板
当我设置
时 [OperationContract]
[WebGet(UriTemplate = "/Func?request={request}",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
Result Func(string request);
它工作正常,但这不是他们想要的。
答案 0 :(得分:0)
您无法以这种方式设置它。原因是"?"在URL中表示将遵循URL参数,并且URL参数始终采用" name = value"
的形式你可以做
[OperationContract]
[WebGet(UriTemplate = "/Func?request={request}",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
Result Func(string request);
或者
[OperationContract]
[WebGet(UriTemplate = "/Func/{request}",
BodyStyle = WebMessageBodyStyle.Bare,
ResponseFormat = WebMessageFormat.Json)]
Result Func(string request);
如果你像上一个例子一样,你的参数请求只能是一个字符串。