C# 我对WCF服务中的URI模板有一个问题

C# 我对WCF服务中的URI模板有一个问题,c#,wcf,C#,Wcf,我有一个具有以下运营合同的web服务,我的服务托管在http://localhost:9002/Service.svc/ [OperationContract] [WebGet(UriTemplate = "/Files/{Filepath}")] Stream DownloadFile(string Filepath); 如果提供了正确的文件路径,这个web服务将允许用户下载文件(假设我不知何故找到了正确的文件路径) 现在,我可以通过键入,http://localhost:9002/Serv

我有一个具有以下运营合同的web服务,我的服务托管在
http://localhost:9002/Service.svc/

[OperationContract]
[WebGet(UriTemplate = "/Files/{Filepath}")]
Stream DownloadFile(string Filepath);
如果提供了正确的
文件路径
,这个web服务将允许用户下载文件(假设我不知何故找到了正确的文件路径)

现在,我可以通过键入,
http://localhost:9002/Service.svc/Files/(文件路径}

如果
{filepath}
是一些简单的字符串,这不是问题,但是我想发送文件的位置。假设用户想在服务器上下载文件
C:\Test.mp3
。但是我如何才能通过
C:\Test.mp3
作为
{filepath}
?键入
http://localhost:9002/Service.svc/Files/C:\在浏览器中测试.mp3

我刚接触web服务,发现这个社区是获得我问题答案的最快方式

现在开始工作了。
需要使用System.web中的HttpServerUtility.UrlTokenDecode()

您不能在URL中键入特殊字符,如“:”和“\”。它们需要进行URL编码。

听起来您需要对字符串进行URL编码,然后在后端进行解码。将System.web添加到项目中,然后使用.UrlEncode(),然后使用System.web.HttpUtility.UrlDecode()

Reference System.Web,然后在文件路径上调用
HttpUtility.UrlEncode()
,这会将:和\转换为URL代码,在URL上应该可以。它仍然不工作,它编码“:”和“\”但不编码“。有什么想法吗?