Я определил операцию службы WCF REST следующим образом:
[OperationContract]
[WebInvoke(UriTemplate = "/findcomplaints/{applicationkey}/{culture}/{maxNumberOfComplaints}/{emailaddress}/{categoryid}/{onlymarkedasabusive}/{sortkey}/{pagenumber}", Method = "GET", ResponseFormat = WebMessageFormat.Json)]
FindComplaintsResponse FindComplaints(string applicationKey, string culture, string maxNumberOfComplaints, string emailAddress, string categoryId, string onlyMarkedAsAbusive, string sortKey, string pageNumber);
Я хочу проверить это с помощью fiddler, но я не знаю, как передать адрес электронной почты в строке запроса. Если я попробую это в Fiddler:
http://localhost:55708/ComplaintService.svc/findcomplaints/code/nl-BE/5/email@hotmail.com/1/1/sortkey/1
тогда я получаю сообщение об ошибке «Ресурс не найден» (из-за части «email@hotmail.com», потому что, если я заменю его обычной строкой, я не получу ошибку).
Есть идеи, как передать электронное письмо в этом URI?
РЕДАКТИРОВАТЬ: Я также пытался экранировать знак @ с% 40, но получил ту же ошибку. На самом деле, @ не вызывает никаких проблем. Кажется, это точка, которая вызывает ошибку. Но почему?
EDIT2: если я использую? синтаксис вроде http://localhost:55708/ComplaintService.svc/findcomplaints?email=email@hotmail.com проблем нет.
Спасибо