Menyesuaikan Ejen Pengguna untuk URLConnections dalam Java
Apabila menggunakan URLConnection dalam Java untuk mendapatkan semula kandungan web, menetapkan ejen pengguna tersuai selalunya diperlukan untuk rangkak laman web yang tepat dan simulasi pengguna. Walau bagaimanapun, masa jalan Java lalai menambahkan pengecamnya sendiri pada rentetan ejen pengguna, yang mungkin tidak diingini dalam senario tertentu.
Pertanyaan
Seorang pembangun Java meminta bantuan dalam menetapkan ejen pengguna tanpa akhiran "Java/1.5.0_19" yang dilampirkan oleh masa jalan. Pengguna memberikan coretan kod yang menggambarkan cara mereka cuba menetapkan ejen pengguna menggunakan setRequestProperty().
Penyelesaian
Nasib baik, dalam Java 1.6.30 dan kemudian, menetapkan ejen pengguna melalui setRequestProperty("User-Agent", "") berfungsi dengan sempurna, tanpa sebarang maklumat runtime Java tambahan ditambahkan. Untuk menunjukkan ini, pembangun menggunakan netcat untuk mendengar permintaan HTTP yang masuk dan memerhatikan bahawa ejen pengguna tersuai berjaya dihantar tanpa akhiran Java.
Pelaksanaan Penuh
import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class CustomUserAgent { public static void main(String[] args) throws IOException { URL url = new URL("http://localhost:8080/foobar"); URLConnection hc = url.openConnection(); hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); System.out.println(hc.getContentType()); } }
Dengan menggunakan pendekatan ini, pembangun boleh menetapkan ejen pengguna dengan berkesan untuk URLConnections mereka di Java tanpa sebarang penambahan khusus Java yang tidak diingini, memastikan gelagat yang diingini untuk mengikis web mereka atau tugas komunikasi lain.
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Ejen Pengguna Tersuai untuk URLConnections di Java tanpa Pengecam Masa Jalan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!