Rumah >Java >javaTutorial >Bagaimana untuk menyelesaikan pengecualian kegagalan ubah hala sambungan rangkaian Java (RedirectFailureException)

Bagaimana untuk menyelesaikan pengecualian kegagalan ubah hala sambungan rangkaian Java (RedirectFailureException)

王林
王林asal
2023-08-18 22:24:151401semak imbas

. Walau bagaimanapun, kadangkala disebabkan oleh beberapa keadaan khas, kami mungkin menghadapi pengecualian di mana pengalihan sambungan rangkaian gagal, iaitu, RedirectFailureException. Artikel ini akan memperkenalkan cara menyelesaikan pengecualian ini dan memberikan kod sampel.

Bagaimana untuk menyelesaikan pengecualian kegagalan ubah hala sambungan rangkaian Java (RedirectFailureException)1 Apakah itu RedirectFailureException?

RedirectFailureException ialah salah satu pengecualian yang akan dihadapi oleh perpustakaan sambungan rangkaian Java (seperti HttpURLConnection atau HttpClient) apabila menyambung ke rangkaian. Ia biasanya berlaku dalam keadaan berikut:

URL yang diubah hala adalah tidak sah atau tidak boleh diakses

Jumlah ubah hala terlalu banyak dan melebihi had maksimum yang dipratetap


Kod status ubah hala yang dikembalikan oleh pelayan

; Tamat masa sambungan atau ralat rangkaian.
  1. 2. Kaedah untuk menyelesaikan RedirectFailureException:
  2. Semak kesahihan URL:
  3. Apabila menghadapi RedirectFailureException, semak dahulu sama ada URL yang diubah hala itu sah. Anda boleh menyemak kesahihan URL dengan menggunakan kaedah isValid() kelas java.net.URL. Kod sampel adalah seperti berikut:
  4. public static boolean isValidURL(String url) {
        try {
            new URL(url).toURI();
            return true;
        } catch (MalformedURLException | URISyntaxException e) {
            return false;
        }
    }

Tingkatkan had ubah hala:

Kadangkala, masa ubah hala pelayan mungkin melebihi had maksimum yang dipratetap, mengakibatkan pengecualian. Anda boleh meningkatkan had ubah hala dengan menetapkan kaedah setMaxRedirects() HttpURLConnection atau HttpClient. Kod sampel adalah seperti berikut:
  1. HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setInstanceFoll
    owRedirects(false);
    connection.setMaxRedirects(10); // 设置重定向次数限制为10次

  2. Mengendalikan URL yang diubah hala:
Apabila mengubah hala, pelayan akan mengembalikan medan pengepala "Lokasi", yang mengandungi URL yang diubah hala. Kami boleh mengubah hala sambungan ke URL baharu dengan mendapatkan medan ini. Kod sampel adalah seperti berikut:
  1. HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    String redirectUrl = connection.getHeaderField("Location");
    URL newUrl = new URL(redirectUrl);
    HttpURLConnection newConnection = (HttpURLConnection) newUrl.openConnection();

  2. Tingkatkan tetapan tamat masa sambungan rangkaian:
Kadangkala tamat masa sambungan rangkaian akan menyebabkan pengecualian kegagalan pengalihan. Tetapan tamat masa boleh ditingkatkan dengan menetapkan tamat masa sambungan dan tamat masa baca. Kod sampel adalah seperti berikut:
  1. HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setConnectTimeout(5000); // 连接超时设置为5秒
    connection.setReadTimeout(5000); // 读取超时设置为5秒

    3. Ringkasan:
  2. Artikel ini memperkenalkan cara menyelesaikan pengecualian kegagalan ubah hala sambungan rangkaian Java (RedirectFailureException). Kami boleh menyelesaikan pengecualian ini dengan berkesan dengan menyemak kesahihan URL, meningkatkan had bilangan ubah hala, mengendalikan URL yang diubah hala dan meningkatkan tetapan tamat masa sambungan rangkaian. Saya berharap kandungan artikel ini akan membantu pembaca apabila mereka menghadapi masalah yang sama dalam pengaturcaraan rangkaian Java.
    Walau bagaimanapun, perkara di atas hanyalah beberapa kaedah biasa untuk menyelesaikan pengecualian RedirectFailureException Penyelesaian khusus perlu dilaraskan dan diubah suai mengikut situasi sebenar. Apabila menghadapi pengecualian ini, anda harus nyahpepijat dan menyelesaikan masalah berdasarkan masalah khusus untuk mencari punca masalah dan mengambil penyelesaian yang sesuai.

  1. Rujukan:
  2. [1] Spesifikasi API Java SE 11: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/HttpURLConnection.html
[ 2 ] Spesifikasi API Java SE 11: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/URL.html

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan pengecualian kegagalan ubah hala sambungan rangkaian Java (RedirectFailureException). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn