【求助关于HTTP响应报文】怎么获取Location的值

prlover 2014-03-02 12:00:12
访问一个网页 http://fc.5sing.com/DownFile.aspx?SongID=1737865&SongType=fc

这是一个被重定向的,我用F12抓取到响应报文代码是302(重定向),响应报文里也有要重定向的网址(Location)

这是F12捕获到的
响应 HTTP/1.1 302 Moved Temporarily
Date Sat, 01 Mar 2014 15:11:12 GMT
Content-Type text/html;charset=utf-8
Transfer-Encoding chunked
Connection keep-alive
X-Powered-By PHP/5.3.21
serversign 53
Location http://data7.5sing.com/T1waYbBXJT1R47IVrK.mp3

但是我用HttpWebResponse和WebResponse的Headers集合里面就是没有Location这个键值,连这个键都没有!

这是我用HttpWebResponse获取到的所有响应头,里面没有Location
Transfer-Encoding:chunked
Connection:keep-alive
Vary:Accept-Encoding,Accept-Encoding
serversign:19
Content-Type:text/html;charset=utf-8
Date:Sat, 01 Mar 2014 15:48:59 GMT
X-Powered-By:PHP/5.3.21

问题:怎么用代码获取Location重定向的网址咩~~๑Ծ ౪ Ծ๑
...全文
966 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 7 楼 prlover 的回复:
[quote=引用 6 楼 superliu1122 的回复:] 可能是你的请求和浏览器的不一样 包括Cookies,User-Agent这些等等 比如登录信息的Cookies是否正确,我直接打开网址响应是200,显示下载失败,应该是没有登录的原因
我试了下 还真是这个原因 3q[/quote] 楼主,这个location最后怎么拿到的?我纠结好久了,要怎么拿?
prlover 2014-03-02
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
sorry,又跟踪了一下,如果是302,应该是在消息头中有Location。

但是使用你的url地址访问,得到的是200,而不是302.

不会啊,你看我的
prlover 2014-03-02
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
这地址就压根不是在Headers集合中的。它在返回的消息体中。
消息体?GetResponseStream()里面没有啊,而且F12捕获到的明明在响应标头里面呢
  • 打赏
  • 举报
回复
sorry,又跟踪了一下,如果是302,应该是在消息头中有Location。 但是使用你的url地址访问,得到的是200,而不是302.
  • 打赏
  • 举报
回复
这地址就压根不是在Headers集合中的。它在返回的消息体中。
prlover 2014-03-02
  • 打赏
  • 举报
回复
引用 6 楼 superliu1122 的回复:
可能是你的请求和浏览器的不一样 包括Cookies,User-Agent这些等等 比如登录信息的Cookies是否正确,我直接打开网址响应是200,显示下载失败,应该是没有登录的原因
我试了下 还真是这个原因 3q
superliu1122 2014-03-02
  • 打赏
  • 举报
回复
可能是你的请求和浏览器的不一样 包括Cookies,User-Agent这些等等 比如登录信息的Cookies是否正确,我直接打开网址响应是200,显示下载失败,应该是没有登录的原因
prlover 2014-03-02
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
sorry,又跟踪了一下,如果是302,应该是在消息头中有Location。 但是使用你的url地址访问,得到的是200,而不是302.
我用代码跟踪也是200 但是用浏览器捕获的是302,好奇怪 我的代码

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ur1);
request.AllowAutoRedirect = false;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
int code = (int)response.StatusCode;

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧