C# 代码
string MyLink = “http://www.zei8.net/plus/download.php?open=2&id=55507&uhash=dc74d5c3ccbb8856f2e13515”;
HttpWebRequest “request = (HttpWebRequest)WebRequest.Create(MyLink);
rettpWebRequest)WebRequest.Create(MyLink);quest.Method = "GET";
request.Headers.Clear();
request.ContentType = "application/x-www-form-urlencoded";
request.KeepAlive = true;
request.AllowAutoRedirect = true;
HttpWebResponse httpResponse = (HttpWebResponse)request.GetResponse();
string mydownurl = httpResponse.ResponseUri.ToString();
httpResponse.Close();
服务器端的情况无法控制,我们无法更改服务器端代码。
MyLink 为原始的地址
形式为 http://www.*******.com/plus/download.php?open=2&id=55507&uhash=dc74d5c3ccbb8856f2e13515
我通过以上代码 获取mydownurl得到真实地址,但是当真实地址中存在中文的时候 获取的地址显示为乱码 是这样的地址
http:///www.*******.com/2015/201502/Äê14-20ÈÕ½ðÈÚ°²È«ÔËÐп¼ºËÇé¿öͨ±¨.rar
实际地址是
http:///www.*******.com/2015/201502/《原来康熙》全集.rar
找了个测试地址
http://www.zei8.net/plus/download.php?open=2&id=55507&uhash=dc74d5c3ccbb8856f2e13515
设置一下编码格式:方法:
response:
A、设置服务器端的编码
response.setCharacterEncoding("utf-8”);
B、通知浏览器服务器发送的数据格式
response.setContentType("text/html;charset=utf-8”);
C、浏览器使用utf-8进行解码
request;
A、post方式
post方式属于表单提交,参数存在于请求体中。
request.setCharacterEncoding("utf-8”)
B
在tomcat的server.xml中,设置元素的属性URIEncoding="UTF-8”即可。(默认没有设置此属性)
用iso8859重新获取一次…然后把获取到的用utf8格式在编码一次
可以发给我url链接吗,我试下
这样试试,获取响应头后的地址
request.AllowAutoRedirect = false;//禁止跳转
//request.AllowAutoRedirect = true;
HttpWebResponse httpResponse = (HttpWebResponse)request.GetResponse();
string mydownurl = httpResponse.GetResponseHeader("location");//
发个纯测试地址 ,无他
http://www.zei8.net/plus/download.php?open=2&id=5697&uhash=0b132c1e9925356111d21bd8