设置使用HttpURLConnection时遵循的最大服务器重定向数

时间:2011-01-23 17:36:40

标签: java http url

有没有办法强制使用HttpURLConnection时所遵循的最大重定向数?

        HttpURLConnection conn = (HttpURLConnection) uri.getURI().toURL();
        conn.connect();

我只能看到启用/禁用重定向的选项

conn.setFollowRedirects(true)

我想设置最大跟随3(似乎默认值为20),以防止这样的异常:

java.net.ProtocolException: Server redirected too many  times (20)

由某些服务器上的循环重定向引起。

3 个答案:

答案 0 :(得分:3)

您可以尝试http.maxRedirects属性:

System.setProperty("http.maxRedirects", "3");

答案 1 :(得分:1)

正在加载HTTP RFC

  

用户代理永远不应该   自动重定向请求更多   超过5次,因为这样的重定向   通常表示无限循环。

This forum post explains如何解决此问题

答案 2 :(得分:0)

为什么不抓住异常?更改阈值数量不会改变功能在超过该数量时必须向您报告故障的事实。实际上,降低阈值将增加函数在复杂但合法的重定向情况下报告失败的可能性,当它最终成功地达到更高的阈值时。