2
我们试图通过使用WebGetAttribute和UriTemplate公开REST接口,将可变数量的键值对传递给我们的服务。我们想要做什么:WCF:如何将可变数量的参数传递到启用WebGet的服务
[WebGet(UriTemplate="/Query/Select?{query}"]
Response Query(string query);
在客户端我们要指定某些键几次,如:
hllp://本地主机/为MyService /查询/选择字段=名称& fieldsort = ASC &字段= ID
我们的第一种方法是使用下面的UriTemplate和手动分解键值对:
[WebGet(UriTemplate="/Query/{*query}"]
ResponseQuery(string query);
卜牛逼这只是适用于段等等之类
hllp网址://本地主机/为MyService /查询/场=瓦尔%3Due 得到由WCF自动解码和“域=瓦尔= UE”将被传递到服务方法。
更糟糕的是,双编码的URL得到完全解码,太:
hllp://本地主机/为MyService /查询/场=瓦尔%253Due 变为 “域=瓦尔= UE” 一次。
有什么办法来访问原始查询字符串?如果不是,我们能否以其他方式扩展/使用UriTemplate,以使用动态数量的键值对?
但是,您如何将这些参数传递给您的服务方法? – Nicolas 2011-03-14 22:49:36