22

Java を使用して、URL が接続可能であり、有効な応答を返すことをテストするにはどうすればよいですか?

http://stackoverflow.com/about
4

4 に答える 4

47

単体テストとしてのソリューション:

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;
    }
}
于 2008-11-12T23:53:44.710 に答える
6

Java 5 以降、InetAdress クラスには isReachable(); というメソッドが含まれています。これを使用して、Java で ping の実装を作成できます。このメソッドのタイムアウトを指定することもできます。これは、上記の単体テスト方法のもう 1 つの代替手段であり、おそらくより効率的です。

于 2008-11-12T23:56:52.380 に答える
-10
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/

于 2011-06-23T09:42:01.820 に答える