use*_*192 46 .net c# url silverlight encoding
我有一个构建URL的Silverlight应用程序.此URL是对基于REST的服务的调用.此服务需要一个表示位置的参数.位置是"城市,州"的形式.要构建此URL,我将调用以下代码:
string url = "http://www.example.com/myService.svc/";
url += HttpUtility.UrlEncode(locationTextBox.Text);
Run Code Online (Sandbox Code Playgroud)
如果用户在locationTextBox中输入"chicago,il",结果如下所示:
http://www.example.com/myService.svc/chicago%2c+il
Run Code Online (Sandbox Code Playgroud)
但实际上,我有点期待网址看起来像;
http://www.example.com/myService.svc/chicago,%20il
Run Code Online (Sandbox Code Playgroud)
通过浏览器URL测试我的服务时,我期待的那个工作.但是,生成的URL无法正常工作.我究竟做错了什么?
Ale*_*kov 73
我会推荐Uri.EscapeDataString而不是使用HttpUtility函数.请参阅Server.UrlEncode与HttpUtility.UrlEncode中的讨论.
尝试使用UrlPathEncode()方法.查看备注:http: //msdn.microsoft.com/en-us/library/h10z5byc.aspx
引用:
您可以使用UrlEncode()方法或UrlPathEncode()方法对URL进行编码.但是,这些方法会返回不同的结果.UrlEncode()方法将每个空格字符转换为加号字符(+).UrlPathEncode()方法将每个空格字符转换为字符串"%20",表示十六进制表示法的空格.在对URL的路径部分进行编码时,请使用UrlPathEncode()方法,以保证解码的URL一致,无论哪个平台或浏览器执行解码.