Java を使用して、URL が接続可能であり、有効な応答を返すことをテストするにはどうすればよいですか?
http://stackoverflow.com/about
Java を使用して、URL が接続可能であり、有効な応答を返すことをテストするにはどうすればよいですか?
http://stackoverflow.com/about
単体テストとしてのソリューション:
public void testURL() throws Exception {
String strUrl = "http://stackoverflow.com/about";
try {
URL url = new URL(strUrl);
HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
urlConn.connect();
assertEquals(HttpURLConnection.HTTP_OK, urlConn.getResponseCode());
} catch (IOException e) {
System.err.println("Error creating HTTP connection");
e.printStackTrace();
throw e;
}
}
Java 5 以降、InetAdress クラスには isReachable(); というメソッドが含まれています。これを使用して、Java で ping の実装を作成できます。このメソッドのタイムアウトを指定することもできます。これは、上記の単体テスト方法のもう 1 つの代替手段であり、おそらくより効率的です。
import org.apache.commons.validator.UrlValidator;
public class ValidateUrlExample {
public static void main(String[] args) {
UrlValidator urlValidator = new UrlValidator();
//valid URL
if (urlValidator.isValid("http://www.mkyong.com")) {
System.out.println("url is valid");
} else {
System.out.println("url is invalid");
}
//invalid URL
if (urlValidator.isValid("http://invalidURL^$&%$&^")) {
System.out.println("url is valid");
} else {
System.out.println("url is invalid");
}
}
}
出力:
URL は有効です URL が無効です
ソース: http://www.mkyong.com/java/how-to-validate-url-in-java/