有人可以解释这背后的原因或它是如何运作的?如果我在下面做了一个WebInvoke,它会失败(说方法不允许,但如果我做了一个WebGet,它会通过)。我只是想明白为什么?
[OperationContract]
[WebGet(UriTemplate = "login/{username}/{password}", ResponseFormat =
WebMessageFormat.Json)]
string Login(string username, string password);
上面的代码,只返回一个硬编码字符串。 (无条件逻辑)
答案 0 :(得分:12)
编辑:现在重写一下我已经重读了这个问题......
WebInvoke
允许您指定允许哪个动词,默认为POST。 WebGet
要求客户端使用GET请求。在任何一种情况下,如果使用了错误的动词,你将得到“不允许使用方法”。您正在使用浏览器,因此它正在发出GET请求,因此正常的仅限POST的WebInvoke会拒绝它,而WebGet会允许它。您可以在Method="GET"
属性声明中指定WebInvoke
以允许GET,当然。