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#发起第一个地址的请求?
你把url中的%修改为%25就可以了。
即:
var url = http://www.baidu.com/first-path%252Fsecond-path%252Fthird-path/somepath
是的,也可以用:Uri myUri = new Uri(Uri.EscapeUriString(UrlString));
参考:http://stackoverflow.com/questions/10231368/net-webrequest-create-decoding-encoded-uri
谢谢。
url decode
是的,Uri myUri = new Uri(Uri.EscapeUriString(UrlString));