У меня есть вопрос о шаблонах URI в службах WCF - PullRequest
0 голосов
/ 12 июня 2010

У меня есть веб-сервис со следующим контрактом на эксплуатацию, и мой сервис размещен по адресу http://localhost:9002/Service.svc/

[OperationContract]
[WebGet(UriTemplate = "/Files/{Filepath}")]
Stream DownloadFile(string Filepath);

Этот веб-сервис позволит пользователям загружать файл, если предоставлен правильный filepath (при условии, чтоЯ каким-то образом узнаю, что правильный путь к файлу).

Теперь я могу получить доступ к этой службе из браузера, набрав http://localhost:9002/Service.svc/Files/(Filepath}

Если {filepath} - это простая строка, это не проблема., но я хочу отправить расположение файла.Допустим, пользователи хотят скачать файл C:\Test.mp3 на сервер.Но как я могу передать C:\Test.mp3 как {Filepath}?Я получаю сообщение об ошибке, когда набираю http://localhost:9002/Service.svc/Files/C:\Test.mp3 в браузере.

Я новичок в веб-службах и обнаружил, что это сообщество - самый быстрый способ получить ответы на мои вопросы.

получил егоработает в настоящее время.необходимо использовать HttpServerUtility.UrlTokenDecode () из System.web

Ответы [ 2 ]

2 голосов
/ 12 июня 2010

Похоже, вам нужно URL-кодировать строку, а затем декодировать на серверной части. Добавьте System.Web в свой проект и используйте System.Web.HttpUtility .UrlEncode (), затем System.Web.HttpUtility.UrlDecode ()

2 голосов
/ 12 июня 2010

Вы не можете вводить специальные символы, такие как «:» и «\», как часть URL.Они должны быть в кодировке URL.

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