【发布时间】:2011-06-25 13:50:12
【问题描述】:
我在 WCF 中编写了一个简单的 REST 服务,其中我使用相同的 URI 模板创建了 2 个方法,但使用不同的方法(POST 和 GET)。对于 GET 方法,我还发送了额外的查询参数,如下所示:
[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
}
当我使用 POST 方法调用 CreateUserAccount 时,它工作正常,但是当我使用 GET 调用 GetUser 方法并仅发送一个查询字符串参数(userID 或 UserName)时,它会给出错误“HTTP Method not allowed”,但如果同时发送两个参数工作正常。
谁能帮帮我?
【问题讨论】:
-
两者的基本 URI 相同,您是否尝试过将一个从“用户”更改为其他内容?只问,因为重载在 Web 服务中不起作用。