у меня есть веб-службы с последующим контракт операции и моя служба размещена на http://localhost:9002/Service.svc/
У меня есть вопрос о шаблонах URI в WCF Services
[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
Справочный System.Web, а затем вызывается 'HttpUtility.UrlEncode()' в вашем пути к файлу - это превращает : и \ в URL-коды, которые должны быть точными на URL-адресе –
Он все еще не работает, он кодирует ':' и '\', но не кодирует '.'. Есть идеи? – Debby