如何将 UriTemplate 设置为 Web 服务?
How to set UriTemplate a Web Service?
如何设置 UriTemplate 属性:
/函数名?{json_data}
因为使用此 Web 服务的人应该这样称呼
例如:
http://localhost/xxx/service/Func?{"x":"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);
它工作正常,但这不是他们想要的。
不能这样设置。这样做的原因是“?”在 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);
如果你像上一个例子那样做,你的参数请求只能是一个字符串。
如何设置 UriTemplate 属性:
/函数名?{json_data}
因为使用此 Web 服务的人应该这样称呼
例如: http://localhost/xxx/service/Func?{"x":"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);
它工作正常,但这不是他们想要的。
不能这样设置。这样做的原因是“?”在 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);
如果你像上一个例子那样做,你的参数请求只能是一个字符串。