Kaedah untuk menyelesaikan sambungan rangkaian Java yang melebihi bilangan maksimum pengecualian ubah hala (MaxRedirectsExceededException)
Apabila membangunkan aplikasi Java, kami selalunya perlu membuat sambungan rangkaian untuk berkomunikasi dengan pelayan lain. Walau bagaimanapun, kadangkala kita menghadapi pengecualian: MaxRedirectsExceededException. Pengecualian ini menunjukkan bahawa sambungan rangkaian kami telah melebihi bilangan ubah hala maksimum, menyebabkan sambungan tidak dapat diteruskan.
Pengecualian ini biasanya berlaku apabila menggunakan alatan seperti HttpURLConnection atau HttpClient untuk sambungan rangkaian. Apabila kami menghantar permintaan, pelayan mungkin mengembalikan respons ubah hala yang memberitahu kami bahawa kami perlu menghantar semula permintaan ke URL lain. Dalam kes ini, kita boleh memilih untuk mengikuti ubah hala dan terus menghantar permintaan atau berhenti mengikuti ubah hala dan membuang pengecualian MaxRedirectsExceededException.
Jadi, bagaimana untuk menyelesaikan pengecualian ini? Kami akan meneroka beberapa kaedah di bawah.
Salah satu cara ialah dengan meningkatkan had ubah hala maksimum supaya program boleh terus mengikuti ubah hala. Anda boleh menggunakan kod berikut untuk menetapkan bilangan ubah hala maksimum:
HttpURLConnection.setFollowRedirects(true); System.setProperty("http.maxRedirects", "10"); // 设置最大重定向次数为10
Kelebihan ini ialah ia membolehkan sambungan terus mengikuti ubah hala, tetapi berhati-hati untuk menetapkan bilangan ubah hala maksimum yang munasabah untuk mengelak daripada memasuki gelung tak terhingga daripada ubah hala.
Kaedah lain ialah melumpuhkan ubah hala berikut dan membuang pengecualian MaxRedirectsExceededException. Anda boleh menggunakan kod berikut untuk melumpuhkan ubah hala berikut:
HttpURLConnection.setFollowRedirects(false);
Kelebihan ini ialah program tidak akan memasuki gelung ubah hala yang tidak terhingga, tetapi perhatikan logik pengendalian ubah hala, anda mungkin perlu mengendalikan respons ubah hala secara manual .
Kaedah terakhir adalah untuk menyesuaikan strategi ubah hala untuk mengendalikan ubah hala secara fleksibel mengikut keperluan anda. Anda boleh menggunakan kod berikut untuk menyesuaikan strategi ubah hala:
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; } });
Kelebihan ini ialah anda boleh mengendalikan ubah hala secara fleksibel mengikut keperluan anda sendiri. Anda boleh memilih untuk meneruskan ubah hala atau berhenti mengikuti ubah hala dan membuang pengecualian.
Ringkasnya, kaedah untuk menyelesaikan sambungan rangkaian Java yang melebihi bilangan maksimum pengecualian ubah hala (MaxRedirectsExceededException) boleh dicapai dengan meningkatkan bilangan maksimum ubah hala, melarang ikut ubah hala atau menyesuaikan strategi ubah hala. Pilih penyelesaian yang sesuai berdasarkan keperluan sebenar, dan perhatikan logik pengendalian pengalihan untuk memastikan operasi normal program.
Saya harap artikel ini akan membantu anda menyelesaikan pengecualian MaxRedirectsExceededException!
Atas ialah kandungan terperinci Kaedah untuk menyelesaikan sambungan rangkaian Java yang melebihi bilangan maksimum pengecualian ubah hala (MaxRedirectsExceededException). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!