AmaSpi
AmaSpi
2016-03-18 16:11
采纳率: 100%
浏览 2.9k
已采纳

HttpURLConnection中setFollowRedirects()的问题

使用HttpURLConnection请求时设置了setFollowRedirects()为false,为什么还是会重定向?检查getFollowRedirects()的返回结果为false,但请求确实发生了重定向。求大神解释一下。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • AmaSpi
    AmaSpi 2016-03-23 11:38
    已采纳

    我想我应该找到原因了;要在HttpURLConnection实例化之前设置HttpURLConnection.setFollowRedirects(false)。setFollowRedirects()是静态方法,设置为false后后面实例化的HttpURLConnection对象才不会发生重定向,如果在setFollowRedirects()设置为false之前就得到HttpURLConnection对象,则该对象的setFollowRedirects()为默认的true。看来setFollowRedircts()的顺序很重要。

    点赞 评论
  • wojiushiwo945you
    毕小宝 2016-03-19 01:09

    首先,setFollowRedirects()方法说明:设置成true,系统自动处理重定向;设置成false,则需要自己从http reply中分析新的url自己重新连接。
    其次,你说的确实发生了重定向是页面返回了重定向的页面了吗?安装API说明的如果没有错的话,你设置为false的话,应该返回的是一个包含重定向地址的页面,你应该从这个页面上提取重定向地址继续访问。
    你可以对比输出下设置为true和false两种值,请求返回的数据内容有什么不同。

    点赞 评论

相关推荐