21

こんにちは、私は多くの異なる URL を通過し、それらが存在するかどうかをチェックするだけのプログラムを書いています。基本的に返されたエラーコードが404かどうかをチェックしています。ただし、1000 を超える URL をチェックしているので、これを非常に迅速に実行できるようにしたいと考えています。以下は私のコードです。(可能であれば)すばやく動作するように変更する方法を考えていました。

final URL url = new URL("http://www.example.com");
HttpURLConnection huc = (HttpURLConnection) url.openConnection();
int responseCode = huc.getResponseCode();

if (responseCode != 404) {
System.out.println("GOOD");
} else {
System.out.println("BAD");
}

JSoup を使用した方が速いでしょうか?

一部のサイトではコード 200 が表示され、独自のエラー ページがあることは承知していますが、チェックしているリンクがこれを行わないことはわかっているため、これは必要ありません。

4

3 に答える 3

1

次の DNS サーバーに問い合わせてみる

class DNSLookup
{
    public static void main(String args[])
    {
        String host = "stackoverflow.com";
        try
        {
            InetAddress inetAddress = InetAddress.getByName(host);
            // show the Internet Address as name/address
            System.out.println(inetAddress.getHostName() + " " + inetAddress.getHostAddress());
        }
        catch (UnknownHostException exception)
        {
            System.err.println("ERROR: Cannot access '" + host + "'");
        }
        catch (NamingException exception)
        {
            System.err.println("ERROR: No DNS record for '" + host + "'");
            exception.printStackTrace();
        }
    }
}
于 2013-08-08T19:55:44.240 に答える
0

タイムアウト プロパティを設定できるようです。許容できることを確認してください。また、テストする URL が多数ある場合は、それらを並行して実行すると、はるかに高速になります。これが役立つことを願っています。

于 2013-08-08T19:52:48.180 に答える