URL から XML を読み取ろうとすると、次のエラーが発生します: java.net.ProtocolException: Server redirected too many times (20)。
次の行でクッキーを設定する解決策を見つけました: 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