码迷,mamicode.com
首页 > Web开发 > 详细

.net 4.5版本WebRequest和Webclient中的一个url转义bug

时间:2015-03-03 13:08:47      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:

有时我们把一个url带入到另一个url中作为参数,这个参数就需要转义。比如:

http://www.baidu.com/s?wd=http%3A%2F%2Fwww.baidu.com

在代码中进行访问这段地址的时候,我们也会期望它照着给的地址访问,在.net 4.0中,确实会如此。

但是如果切换为.net 4.5版本,你就会发现你访问的url实际变成了:

http://www.baidu.com/s?wd=http:%2F%2Fwww.baidu.com

大多数情况下它不会造成什么影响。

但一旦站点对url有某些要求或者验证的时候,它就会造成不符合预期的结果了。

 

 

比如:

 

某个站点需要对url请求进行验证,把url前面所有参数拼接起来生成md5,拼接到url最后的verify中,

然后在服务端验证md5和前面的参数的产生是否一致,返回success或者fail。

 

md5 = ToMD5String("param1=a&param2=b&param3=http%3A%2F%2Fwww.baidu.com");

.net4.0 访问地址:

http://www.xxx.com/do?param1=a&param2=b&param3=http%3A%2F%2Fwww.baidu.com&verify=md5   

response:success

一旦用了.net4.5访问,访问地址莫名其妙变了,就会变成验证不通过的情况了

 

http://www.xxx.com/do?param1=a&param2=b&param3=http:%2F%2Fwww.baidu.com&verify=md5  

 

response:fail

 

这就是我今天测试到的一个bug

 

.net 4.5版本WebRequest和Webclient中的一个url转义bug

标签:

原文地址:http://www.cnblogs.com/irever/p/4310610.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!