有人可以解释这背后的原因或它是如何工作的吗?如果我在下面执行 WebInvoke,它会失败(说方法不允许,但如果我执行 WebGet,它会通过)。我只是想了解为什么?
[OperationContract]
[WebGet(UriTemplate = "login/{username}/{password}", ResponseFormat =
WebMessageFormat.Json)]
string Login(string username, string password);
上面的代码,只是返回一个硬编码的字符串。 (无条件逻辑)
最佳答案
编辑:现在我重读了这个问题...
WebInvoke
允许您指定允许使用哪个动词,默认为 POST。 WebGet
要求客户端使用 GET 请求。在任何一种情况下,如果使用了错误的动词,您都会得到“不允许使用方法”。您正在使用浏览器,因此它正在发出 GET 请求,因此普通的 POST-only WebInvoke 会拒绝它,而 WebGet 会允许它。当然,您可以在 WebInvoke
属性声明中指定 Method="GET"
以允许 GET。
关于c# - 为什么 WebInvoke 不允许此方法,但 WebGet 可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3835155/