首页 新闻 会员 周边 捐助

C#发起Http请求,请求地址中带有'%2F'自动转为'/',如何处理?

0
悬赏园豆:50 [已解决问题] 解决于 2015-06-29 13:59

RT,假定请求地址如下:

var url = http://www.baidu.com/first-path%2Fsecond-path%2Fthird-path/somepath

利用C#发起请求:

var w = System.Net.WebRequest.Create(url);

结果查看:Console.WriteLine(w.RequestUri.AbsoluteUri);

是:http://www.baidu.com/first-path/second-path/third-path/somepath

但是这两个地址的确是不同的,在Method="PUT"时,两个请求原地址(带有%2F)返回201:Created,另一个(%2F被替换成/)返回404:Not Found,具体地址不方便说。

请问大家谁知道是怎么回事?如何用C#发起第一个地址的请求?

风筝blog的主页 风筝blog | 初学一级 | 园豆:76
提问于:2015-06-29 13:20
< >
分享
最佳答案
0

你把url中的%修改为%25就可以了。

即:

var url = http://www.baidu.com/first-path%252Fsecond-path%252Fthird-path/somepath

收获园豆:40
乐享程序员 | 小虾三级 |园豆:930 | 2015-06-29 13:35

是的,也可以用:Uri myUri = new Uri(Uri.EscapeUriString(UrlString));

参考:http://stackoverflow.com/questions/10231368/net-webrequest-create-decoding-encoded-uri

谢谢。

风筝blog | 园豆:76 (初学一级) | 2015-06-29 13:58
其他回答(1)
0

url decode

收获园豆:10
吴瑞祥 | 园豆:29449 (高人七级) | 2015-06-29 13:32

是的,Uri myUri = new Uri(Uri.EscapeUriString(UrlString));

支持(0) 反对(0) 风筝blog | 园豆:76 (初学一级) | 2015-06-29 13:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册