WebGet ненадлежащим образом добавляет косую черту - PullRequest
1 голос
/ 16 декабря 2010

У меня есть клиент для отдыха, который пытается вызвать http://my -сервер / section1 / section2? Param1 = foo

http://my -сервер / section1 / section2?param1 = foo http://my -сервер / sectionX / sectionY? param2 = bar http://my -сервер / sectionA / sectionC? param3 = kuku

обратите внимание, что параметры запроса имеют значениеизменения имени (param1, param2, param3 ...)

Контракт, который я реализовал,

[WebGet(UriTemplate = "")]
        [OperationContract]
        Message MyMethod();

Однако это приведет к тому, что фактический uri будет вызываться: http://my -сервер / section1 / section2 /? param1 = foo

Обратите внимание, что между разделами 2 и?

был добавлен конечный слеш * Кто-нибудь знает, как его предотвратить?

David

PS Пожалуйста, обратите внимание, что 1) трюк с получением последнего сегмента + параметры в качестве параметра для MyMethod (и использование UriTemplate = "/ {lastSegment}) приведет к тому, что знак вопроса (?)быть декодирован ... что разрушит запрос вызова 2) полное удаление UriTemplate приведет к тому, что имя метода станет частью URI...

1 Ответ

2 голосов
/ 16 декабря 2010

Вы действительно не должны использовать контракты WCF на клиенте для совершения звонков в службы REST. Просто используйте HTTPWebRequest или HttpClient для выполнения этих вызовов.

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