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