Di Java, beberapa kaedah boleh digunakan untuk menentukan ketersediaan URL HTTP. Pendekatan yang paling mudah melibatkan penggunaan kelas java.net.URLConnection:
<code class="java">URL url = new URL(urlString); URLConnection connection = url.openConnection(); connection.connect();</code>
Jika sambungan berjaya diwujudkan, URL itu mungkin tersedia. Kaedah ini, walau bagaimanapun, melaksanakan permintaan GET secara lalai.
Pilihan lain untuk ping URL ialah menggunakan java.net.Socket:
<code class="java">try (Socket socket = new Socket()) { socket.connect(new InetSocketAddress(hostname, port), timeout); return true; } catch (IOException e) { return false; }</code>
Kaedah ini membolehkan anda menguji port tertentu secara eksplisit dan memberikan petunjuk ketersediaan hos yang lebih tepat.
Untuk menghantar permintaan HEAD dan bukannya permintaan GET, anda boleh menghantar URLConnection ke HttpURLConnection dan tetapkan kaedah permintaan:
<code class="java">HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("HEAD");</code>
Permintaan HEAD biasanya lebih ringan dan mungkin lebih disukai untuk semakan ketersediaan URL.
Untuk menentukan ketersediaan sebenar URL, ia tidak mencukupi untuk menguji kebolehcapaian pelayan. Anda juga harus mengesahkan kod respons HTTP. Kod respons 200 menunjukkan permintaan yang berjaya.
<code class="java">int responseCode = connection.getResponseCode(); if (responseCode != 200) { // Not OK. }</code>
Adalah penting untuk menetapkan tamat masa yang sesuai untuk operasi ping anda:
<code class="java">connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout);</code>
Ini memastikan bahawa operasi tamat jika sambungan tidak dapat diwujudkan atau respons tidak diterima dalam tempoh masa yang ditentukan.
Menggabungkan teknik ini, berikut ialah kaedah utiliti yang melakukan semakan ketersediaan URL yang komprehensif :
<code class="java">public static boolean pingURL(String url, int timeout) { try { HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(); connection.setConnectTimeout(timeout); connection.setReadTimeout(timeout); connection.setRequestMethod("HEAD"); int responseCode = connection.getResponseCode(); return (200 <= responseCode && responseCode <= 399); } catch (IOException exception) { return false; } }</code>
Atas ialah kandungan terperinci Bagaimana untuk Memantau Ketersediaan URL dengan Cekap di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!