タイトル: Java ネットワーク接続リダイレクト失敗例外 (RedirectFailureException) を解決する方法
はじめに:
Java ネットワーク プログラミングでは、リダイレクト関数がよく使用されます。つまり、指定された URL は自動的に他の URL にジャンプします。ただし、特殊な状況により、ネットワーク接続のリダイレクトが失敗する例外、つまり RedirectFailureException が発生することがあります。この記事では、この例外を解決する方法とサンプルコードを紹介します。
1. RedirectFailureException とは何ですか?
RedirectFailureException は、Java ネットワーク接続ライブラリ (HttpURLConnection や HttpClient など) がネットワークに接続するときに発生する例外の 1 つです。これは通常、次の状況で発生します:
2. RedirectFailureException を解決する方法:
public static boolean isValidURL(String url) { try { new URL(url).toURI(); return true; } catch (MalformedURLException | URISyntaxException e) { return false; } }
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setInstanceFoll owRedirects(false); connection.setMaxRedirects(10); // 设置重定向次数限制为10次
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); String redirectUrl = connection.getHeaderField("Location"); URL newUrl = new URL(redirectUrl); HttpURLConnection newConnection = (HttpURLConnection) newUrl.openConnection();
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(5000); // 连接超时设置为5秒 connection.setReadTimeout(5000); // 读取超时设置为5秒
3. 概要:
この記事では、Java ネットワーク接続のリダイレクト失敗例外 (RedirectFailureException) を解決する方法を紹介します。 URL の正当性を確認し、リダイレクト数の制限を増やし、リダイレクトされた URL を処理し、ネットワーク接続のタイムアウト設定を増やすことで、この異常を効果的に解決できます。この記事の内容が、読者が Java ネットワーク プログラミングで同様の問題に遭遇したときに役立つことを願っています。
ただし、上記は RedirectFailureException 例外を解決するための一般的な方法の一部にすぎず、具体的な解決策は実際の状況に応じて調整および変更する必要があります。この例外が発生した場合は、特定の問題に基づいてデバッグとトラブルシューティングを行い、問題の根本原因を見つけて適切な解決策を講じる必要があります。
参考資料:
[1] Java SE 11 API 仕様: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net / HttpURLConnection.html
[2] Java SE 11 API 仕様: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html
以上がJava ネットワーク接続リダイレクト失敗例外 (RedirectFailureException) を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。