web-dev-qa-db-ja.com

HTTP接続をプログラムでテストするにはどうすればよいですか?

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

http://stackoverflow.com/about
19
brasskazoo

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

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;
    }
}
41
brasskazoo

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

6
John T