Почему этот метод не разрешен для WebInvoke, но хорошо для WebGet? - PullRequest
2 голосов
/ 01 октября 2010

Может кто-нибудь объяснить причину этого или как это работает?Если я выполняю WebInvoke на следующем, он не работает (говорит, что метод не разрешен, но если я делаю WebGet, он проходит)Я просто хочу понять, почему?

[OperationContract]
[WebGet(UriTemplate = "login/{username}/{password}", ResponseFormat =  
                                                        WebMessageFormat.Json)]
string Login(string username, string password);

Приведенный выше код просто возвращает жестко закодированную строку.(Без условной логики)

1 Ответ

12 голосов
/ 01 октября 2010

РЕДАКТИРОВАТЬ: переписать несколько сейчас, я перечитал вопрос ...

WebInvoke позволяет указать, какой глагол будет разрешен, по умолчанию POST. WebGet требует, чтобы клиент использовал запрос GET. В любом случае, если используется неправильный глагол, вы получите «метод не разрешен». Вы использовали браузер, поэтому он делал запрос GET, поэтому обычный WebInvoke только для POST отклонял бы его, тогда как WebGet это разрешал. Конечно, вы можете указать Method="GET" в объявлении атрибута WebInvoke, чтобы разрешить GET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...