我正在WCF上構建REST服務,並且我正在編寫的其中一個方法是GetProfile,它將返回給定用戶名的配置文件。用戶名將包含用戶的域名,因此將具有以下格式:「DOMAIN \ username」。在REST WCF URL中使用反斜槓(%5c)
因此,我有一個名爲Profiles.svc服務,它具有以下端點設置:
[OperationContract]
[WebGet(UriTemplate = "/{username}", ResponseFormat = WebMessageFormat.Xml)]
IRestResponse GetProfile(String username);
然而,當我試圖在http://server/profiles.svc/DOMAIN%5cusername(%5C訪問服務是一個反斜槓的urlencoded的形式)我得到以下錯誤:
Server error in '/' Application HTTP Error 400 - Bad Request
出現這種情況,即使沒有我在執行GetProfile的實際定義的代碼,所以我相信在WCF嘗試將URI綁定到方法的點被拋出錯誤。
是否需要將一些設置添加到我的Web服務配置中,以便允許將反斜槓添加到REST WCF服務中的URL中?還是反斜槓根本不允許?
這樣做似乎是正確的方法(/ {domainName}/{userName}),因爲域和名稱具有與REST良好表達的層次關係。 – 2008-10-14 17:06:21