Rumah > Java > javaTutorial > teks badan

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

王林
Lepaskan: 2023-08-18 22:24:15
asal
1347 orang telah melayarinya

. 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;
        }
    }
    Salin selepas log masuk

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次
    Salin selepas log masuk

  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();
    Salin selepas log masuk

  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秒
    Salin selepas log masuk

    3. Ringkasan: 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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan