HttpClient 在允许自动跳转的情况下。如何得到跳转后的URL?

boyyao 2016-12-23 07:42:57
请求的一个网页是302跳转的。默认HttpClient 是允许自动跳转的。但是跳转后没有发现可以得到当前URL的方法或属性

如果设置成AllowAutoRedirect = false 则在一些操作时会异常。比如:
var result = httpClient.GetStringAsync(url).Result;
...全文
339 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36362642 2016-12-23
  • 打赏
  • 举报
回复
我对HttpClient这个不是太熟。但是根据我对于http的理解,你应该将AllowAutoRedirect设置为false, 你说httpClient.GetStringAsync(url).Result; 这个出错,我想,那是因为302转向本内就不需要响应的body,所以GetStringAsync根本不会拿到任何内容,所以抛出异常了。 你可以在获得302的时候,查看Http 响应头中的 Location这样就可以知道将往哪个地址跳转了。 然后你重新发起向这个地址的请求就可以了。

110,549

社区成员

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

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

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