.NET URL请求时自动把%变成%25的问题解决方法

.Net技术 码拜 9年前 (2015-03-28) 2292次浏览 0个评论

 string url = “http://www.abc.aspx/?NO=%u6D593652N;
 string pagehtml = gethtml(url);
 WebClient client = new WebClient();
 Byte[] pageData = client.DownloadData(url);      
 string pageHtml = Encoding.Default.GetString(pageData); 
 Response.Write(pagehtml);

当我程序去请求abc网站的时候,地址中的%会变成%25。
而对方abc网站的后台不是用Request .QueryString[“no”]方法获取了。
本想我传给abc网站的参数是%u6D593652N变成它接收到的%25u6D593652N导致对方提示错误。
我问题在于.NET可不可以不强制把%变成%25?
还有abc网站不是我的,以是是个例子而已。

.NET URL请求时自动把%变成%25的问题解决方法
10分
.net有什么关系?

%25不就是字符%,难道%u6是字符%不成?你是否了解过url编码的规定?!

.NET URL请求时自动把%变成%25的问题解决方法
12分
用Uri包装试试
.NET URL请求时自动把%变成%25的问题解决方法
引用 4 楼 sp1234 的回复:

.net有什么关系?

%25不就是字符%,难道%u6是字符%不成?你是否了解过url编码的规定?!

我知道一样。但是对方的后台没有把%25变成%呀。没有用Request .QueryString[“no”]方法获得。

.NET URL请求时自动把%变成%25的问题解决方法
13分
DownloadData方法指定一个url的字符串就可以去下载html内容的,难道你写那个不能请求网页内容吗?如果那样的话你可以试试把utl字符串封装成URI类,然后调用DownloadData(URI)方法试试
.NET URL请求时自动把%变成%25的问题解决方法
5分
弱弱的问一下,这个问题最后得到解决了吗?我现在也遇到了类似的问题,URL地址中包含”|”,.net把它变成了”%7C”,对方不识别,但返回结果是一串奇怪的数字,不是正确结果
.NET URL请求时自动把%变成%25的问题解决方法
快两年了,又遇到相同的问题,这次自己完美解决。
换成POST请求,把参数写到PostData里面就可以了,就不会把%强制在URL中转换成%25了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明.NET URL请求时自动把%变成%25的问题解决方法
喜欢 (1)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!