Rumah > Java > javaTutorial > 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
Lepaskan: 2024-11-06 18:22:03
asal
1041 orang telah melayarinya

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

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

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!

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