使用HttpURLConnection请求时设置了setFollowRedirects()为false,为什么还是会重定向?检查getFollowRedirects()的返回结果为false,但请求确实发生了重定向。求大神解释一下。
我想我应该找到原因了;要在HttpURLConnection实例化之前设置HttpURLConnection.setFollowRedirects(false)。setFollowRedirects()是静态方法,设置为false后后面实例化的HttpURLConnection对象才不会发生重定向,如果在setFollowRedirects()设置为false之前就得到HttpURLConnection对象,则该对象的setFollowRedirects()为默认的true。看来setFollowRedircts()的顺序很重要。
首先,setFollowRedirects()方法说明:设置成true,系统自动处理重定向;设置成false,则需要自己从http reply中分析新的url自己重新连接。
其次,你说的确实发生了重定向是页面返回了重定向的页面了吗?安装API说明的如果没有错的话,你设置为false的话,应该返回的是一个包含重定向地址的页面,你应该从这个页面上提取重定向地址继续访问。
你可以对比输出下设置为true和false两种值,请求返回的数据内容有什么不同。