Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mendapatkan Kembali URL Diubah Arah Apabila Menggunakan URLConnection di Java?

Bagaimana untuk Mendapatkan Kembali URL Diubah Arah Apabila Menggunakan URLConnection di Java?

DDD
DDDasal
2024-11-06 18:22:03947semak imbas

How to Retrieve the Redirected URL When Using URLConnection in Java?

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!

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