Java ネットワーク接続のリダイレクトの最大数を超える例外 (MaxRedirectsExceededException) を解決するメソッド

PHPz
リリース: 2023-08-19 17:21:11
オリジナル
1664 人が閲覧しました

Java ネットワーク接続のリダイレクトの最大数を超える例外 (MaxRedirectsExceededException) を解決するメソッド

Java ネットワーク接続の最大リダイレクト数を超える例外 (MaxRedirectsExceededException) を解決する方法

Java アプリケーションを開発する場合、他のアプリケーションとネットワーク接続する必要があることがよくあります。サーバーが通信します。ただし、場合によっては、MaxRedirectsExceededException という例外が発生することがあります。この例外は、ネットワーク接続がリダイレクトの最大数を超えたため、接続を続行できなくなったことを示します。

この例外は通常、ネットワーク接続に HttpURLConnection や HttpClient などのツールを使用するときに発生します。リクエストを送信すると、サーバーはリクエストを別の URL に再送信する必要があることを示すリダイレクト応答を返す場合があります。この場合、リダイレクトに従ってリクエストの送信を続けるか、リダイレクトに従っているのを停止して MaxRedirectsExceededException 例外をスローするかを選択できます。

それでは、この例外を解決するにはどうすればよいでしょうか?以下でいくつかの方法を見ていきます。

  1. リダイレクトの最大制限を増やす

1 つの方法は、プログラムが引き続きリダイレクトを追跡できるように、リダイレクトの最大制限を増やすことです。次のコードを使用して、リダイレクトの最大数を設定できます:

HttpURLConnection.setFollowRedirects(true);
System.setProperty("http.maxRedirects", "10"); // 设置最大重定向次数为10
ログイン後にコピー

これの利点は、接続がリダイレクトに従い続けることができることですが、回避するために適切なリダイレクトの最大数を設定するように注意してください。リダイレクトの無限ループに入ります。

  1. 次のリダイレクトを無効にする

別の方法は、次のリダイレクトを無効にして、MaxRedirectsExceededException 例外をスローすることです。次のコードを使用して、次のリダイレクトを無効にできます。

HttpURLConnection.setFollowRedirects(false);
ログイン後にコピー

これの利点は、プログラムがリダイレクトの無限ループに入らないことですが、リダイレクトを処理するロジックに注意を払う必要がある場合があります。リダイレクト応答を手動で処理します。

  1. カスタム リダイレクト戦略

最後の方法は、ニーズに応じてリダイレクトを柔軟に処理するためにリダイレクト戦略をカスタマイズすることです。次のコードを使用してリダイレクト戦略をカスタマイズできます:

HttpClient client = new DefaultHttpClient();
client.setRedirectStrategy(new DefaultRedirectStrategy() {
    public boolean isRedirected(HttpRequest request, HttpResponse response, HttpContext context) {
        boolean redirected = super.isRedirected(request, response, context);
        if (!redirected) {
            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 301 || statusCode == 302) {
                return true; // 手动处理重定向
            }
        }
        return redirected;
    }
});
ログイン後にコピー

これの利点は、独自のニーズに応じてリダイレクトを柔軟に処理できることです。リダイレクトの追跡を続行するか、リダイレクトの追跡を停止してスローするかを選択できます。例外。

まとめると、リダイレクトの最大数を超える Java ネットワーク接続の例外 (MaxRedirectsExceededException) を解決する方法は、リダイレクトの最大数を増やす、後続のリダイレクトを禁止する、またはリダイレクト戦略をカスタマイズすることで実現できます。実際のニーズに基づいて適切なソリューションを選択し、プログラムが正常に動作するようにリダイレクトを処理するロジックに注意してください。

この記事が MaxRedirectsExceededException 例外の解決に役立つことを願っています。

以上がJava ネットワーク接続のリダイレクトの最大数を超える例外 (MaxRedirectsExceededException) を解決するメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!