テキスト ファイルから大量の URL を読み取り、HttpURLConnection
それぞれで を開き、HTTP コードをチェックして、サイトが正しく接続されているかどうかを確認する Java クラスに取り組んできました。この機能は正常に動作します。問題は、ここで何十万ものリンクを扱っていることです。この方法ではこれらすべてを処理するには遅すぎます。プロセスをより効率的にするためにスレッドを使用しようとしましたが、何らかの理由でさらに遅くなるように見えました. 潜在的な解決策について何か提案はありますか? ありがとう!
public static boolean validate(String urlStr, Proxy proxy)
{
boolean valid = false;
HttpURLConnection conn = null;
try
{
if(proxy==null)
conn = (HttpURLConnection)new URL(urlStr).openConnection();
else
conn = (HttpURLConnection)new URL(urlStr).openConnection(proxy);
conn.setFollowRedirects(false);
conn.setConnectTimeout(7 * 1000);
conn.setRequestMethod("GET");
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)");
conn.connect();
final int code = conn.getResponseCode();
valid = (Arrays.binarySearch(errorCodes, code) == -1);
}
catch(IOException e)
{
// Ignore this for now. Eventually we should add a logger
} finally {
if (conn != null)
{
conn.disconnect();
}
}
return valid;
}