すずろぐ

人生大逆転を目指す、鈴木俊吾の成長日記

Java 指定したURLの存在を確認するサンプルプログラム

Java

こんばんは、すずしんです。

今回の記事では、Java言語のプログラミングをしてみます。
テーマとしては「指定したURL存在確認する」というものです。

指定したURLの存在を確認する方法

指定したURLの存在を確認するには、HttpURLConnectionクラスを使います。
試しに対象のURLに接続してみて、そのレスポンスコードがHTTP_OK(200)になるかどうかを確認します。
HTTP_OKならURLが存在しているということですね。

この考え方をもとにして、指定したURLの存在を確認するメソッドisExistURL()を作成してみました。
それが以下のようなコードです。
urlStringで表されるURLが存在すればtrue、存在しなければfalseを返します。

private static boolean isExistURL(String urlString) {
    URL url;
    int response = 0;
        
    try {
        url = new URL(urlString);
        HttpURLConnection connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("HEAD");
        connection.connect();
        response = connection.getResponseCode();
        connection.disconnect();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
        
    return response == HttpURLConnection.HTTP_OK;
}

サンプルプログラム

このisExistURL()の動作確認用に、サンプルプログラムURLCheckerを作成してみました。
URL_STRINGSに記述したそれぞれのURLに対してisExistURL()を実行して、その結果をコンソールに出力します。

package jp.suzushin7.sample;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class URLChecker {
    private static final String[] URL_STRINGS = {
        "http://www.suzushin7.jp/", "http://www.suzushin7.jp/sample/", "https://www.google.co.jp/"
    };
    
    public static void main(String[] args) {
        for(String u: URL_STRINGS) {
            System.out.println(u + " : " + isExistURL(u));
        }
    }
    
    private static boolean isExistURL(String urlString) {
        URL url;
        int response = 0;
        
        try {
            url = new URL(urlString);
            HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            connection.setRequestMethod("HEAD");
            connection.connect();
            response = connection.getResponseCode();
            connection.disconnect();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return response == HttpURLConnection.HTTP_OK;
    }
}

実行結果

上記サンプルプログラムを実行した結果は以下のようになります。
確かに、存在しているURLはtrue、存在していないURLはfalseとなっているのが分かりますね。

http://www.suzushin7.jp/ : true
http://www.suzushin7.jp/sample/ : false
https://www.google.co.jp/ : true

ひとこと

今回の記事では、指定したURLが存在するかどうかを確認するサンプルプログラムを作成してみました。
一度原理が分かれば、割とスムーズに作成することができますね。

isExistURL()を使う事で、リンク切れの確認ができるようになります。
これを応用して、リンク切れ確認ツールのようなプログラムを今後作成してみたいですね。