2011-02-11 58 views
4

我在WCF中編寫了一個簡單的REST服務,其中我使用相同的URI模板創建了2個方法,但使用了不同的方法(POST和GET)。對於GET方法,我也派遣更多的查詢參數如下:WCF中的URI模板中的附加/可選查詢字符串參數

[WebInvoke(Method = "POST", UriTemplate = "users")] 
    [OperationContract] 
    public bool CreateUserAccount(User user) 
    { 
     //do something 
     return restult; 
    } 

    [WebGet(UriTemplate = "users?userid={userid}&username={userName}")] 
    [OperationContract] 
    public User GetUser(int userid, string userName) 
    { 
     // if User ID then 
     // Get User By UserID 
     //else if User Name then 
     // Get User By User Name 
     //if no paramter then do something 

    } 

當我打電話CreateUserAccount與POST方法它工作正常,但是當我打電話的getUser方法使用GET和只發送一個查詢字符串參數(用戶ID或用戶名)它給出錯誤「不允許使用HTTP方法」,但是如果發送兩個參數的話,它的工作正常。

任何人都可以幫助我嗎?

+0

你有兩個相同的基礎URI,你有沒有嘗試從'用戶'chaning一個到別的東西?只詢問是因爲重載在Web服務中不起作用。 – iMortalitySX 2012-10-29 17:43:35

回答

5

不要指定任何可選參數,並使用WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters來訪問所有參數。

相關問題