是否可以调用接受字符串的Web API来反向斜杠?
调用语法为/api/testapi/PostSomeData/{ID}/{text}
。 text
可以是URL,文件路径或只是一些文本。如果text
是URL或任何文本我的程序正常工作。如果它是file:///C:/TestDirec
或\\\\ServerName\\SomeData\\dinosaur.jpg
等文件路径,则会失败。
http://localhost:12/api/testapi/PostSomeData/1/file:///C:/TestDirec
我的WebApiConfig文件也是这样的
config.Routes.MapHttpRoute(
name: "Api",
routeTemplate: "api/testapi/{action}/{ID}/{FilePath}",
defaults: new { Controller = "testapi", ID = @"\d+", FilePath =@"\d+" }
);
控制器代码
[AcceptVerbs("GET")]
public void PostSomeData(int ID, string FilePath)
{
}
怎么做?
答案 0 :(得分:2)
使用WebUtility.UrlEncode
或HttpUtility.UrlEncode
HttpUtility.UrlEncode("file:///C:/TestDirec")
它将返回file%3a%2f%2f%2fC%3a%2fTestDirec
,这是一个在网址中使用的有效字符串。