当我尝试从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
答案 0 :(得分:0)
当我遇到同样的错误时,我使用了:
import java.net.CookieHandler;
import java.net.CookieManager;
CookieHandler.setDefault(new CookieManager());
答案 1 :(得分:0)
在致电openConnection();
HttpURLConnection.setFollowRedirects(false);