服务器重定向次数太多(20)

时间:2012-08-20 22:39:26

标签: redirect cookies

当我尝试从URL读取XML时出现此错误: java.net.ProtocolException:服务器重定向次数过多(20)。

我找到了一个解决方案,使用以下行设置Cookie:     CookieHandler.setDefault(new ListCookieHandler()); “ListCookieHandler”是我用我的请求中的配置定义的类。

但这不起作用。在方法“CookieHandler.setDefault”的javadoc中,我发现: “注意:非标准的http协议处理程序可能会忽略此设置”。 我认为这可能是问题所在。还有另一种解决方案吗?

我的代码是:

int timeout = 120000;
CookieHandler.setDefault(new ListCookieHandler());
HttpURLConnection conn = (HttpURLConnection) new URL("http://...").openConnection();
conn.setReadTimeout(timeout);
conn.setConnectTimeout(timeout);
BufferedReader reader = new BufferedReader(new  InputStreamReader(conn.getInputStream()));
StringBuilder builder = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
builder.append(line).append(System.getProperty("line.separator"));
}
System.out.println(StringEscapeUtils.unescapeHtml(builder.toString()));

ListCookieHandler的完整解决方案位于以下链接:http://www.java2s.com/Code/Java/JDK-6/UsingCookieHandlerinJava5.htm

2 个答案:

答案 0 :(得分:0)

当我遇到同样的错误时,我使用了:

import java.net.CookieHandler;

import java.net.CookieManager;

CookieHandler.setDefault(new CookieManager());

答案 1 :(得分:0)

在致电openConnection();

之前使用此属性
HttpURLConnection.setFollowRedirects(false);