Cara Mengenalpasti URL Diubah Hala dalam Java
Di Java, kelas URLConnection menawarkan kaedah yang mudah untuk mewujudkan sambungan dengan URL jauh. Walau bagaimanapun, dalam senario yang melibatkan ubah hala URL, URL yang diambil mungkin bukan destinasi akhir. Menentukan URL diubah hala sebenar menimbulkan cabaran. Artikel ini membincangkan penyelesaian untuk menangani isu ini.
Apabila mengakses URL melalui URLConnection, ada kemungkinan pelayan menghantar respons perantaraan dengan medan pengepala Lokasi yang menunjukkan URL diubah hala. Walau bagaimanapun, kaedah openConnection() tidak menangkap respons perantaraan ini.
Menggunakan Kaedah getInputStream()
Untuk menangkap URL yang diubah hala, kaedah getInputStream() boleh dimanfaatkan. Kaedah ini memulakan proses sambungan dan mengikuti sebarang ubah hala HTTP. Akibatnya, tika URLConnection kini menyimpan maklumat tentang URL yang diubah hala.
Untuk menggambarkan, coretan kod berikut menunjukkan cara untuk mendapatkan semula URL yang diubah hala:
URLConnection con = new URL(url).openConnection(); System.out.println("Original URL: " + con.getURL()); con.connect(); System.out.println("Connected URL: " + con.getURL()); InputStream is = con.getInputStream(); System.out.println("Redirected URL: " + con.getURL()); is.close();
Menyemak Pengalihan Sebelum Pengambilan Kandungan
Sudah tentu senario, mungkin perlu untuk menentukan sama ada ubah hala telah berlaku sebelum mengambil kandungan di URL yang diubah hala. Coretan kod berikut menggambarkan pendekatan ini:
HttpURLConnection con = (HttpURLConnection)(new URL(url).openConnection()); con.setInstanceFollowRedirects(false); con.connect(); int responseCode = con.getResponseCode(); System.out.println("Response code: " + responseCode); String location = con.getHeaderField("Location"); System.out.println("Redirected to: " + location);
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali URL Diubah Arah Apabila Menggunakan URLConnection di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!