403 Dilarang apabila Menyambung ke Google dengan Java
Apabila cuba menyambung ke Google dan mendapatkan maklumat menggunakan Java, anda mungkin menghadapi 403 Forbidden ralat, walaupun permintaan yang sama berjaya dalam pelayar web. Inilah sebabnya dan cara membetulkannya:
Java tidak menetapkan pengepala "Ejen Pengguna" secara automatik, yang digunakan oleh penyemak imbas untuk mengenal pasti diri mereka. Ini boleh mencetuskan ralat 403 pada tapak web yang menggunakan pengepala ini untuk menentukan kesahihan permintaan. Untuk menyelesaikan masalah ini, tetapkan pengepala "Ejen Pengguna" secara manual seperti berikut:
URLConnection connection = new URL("https://www.google.com/search?q=" + query).openConnection(); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");
Selain itu, memproses respons memerlukan langkah selanjutnya untuk mencontohi tingkah laku penyemak imbas, termasuk mengambil kuki, menghuraikan pautan token ubah hala dan mengekstrak maklumat yang dikehendaki. Berikut ialah kod yang diubah suai:
String cookie = connection.getHeaderField("Set-Cookie").split(";")[0]; ... if (m.find()) { long amount = Long.parseLong(m.group(1).replaceAll(",", "")); return amount; }
Dengan pelarasan ini, kod Java sepatutnya berjaya mendapatkan semula jumlah hasil carian daripada Google.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Terlarang 403 Semasa Menyambung ke Google dengan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!