如何以编程方式测试HTTP连接?

bra*_*zoo 19 java url http httpconnection

使用Java,我如何测试URL是否可联系,并返回有效的响应?

http://stackoverflow.com/about
Run Code Online (Sandbox Code Playgroud)

bra*_*zoo 42

作为单元测试的解决方案:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您在网络上可用的计算机上使用它但没有运行Web服务器,则此方法将挂起.您需要在HttpURLConnection上使用setConnectTimeout和/或setReadTimeout. (5认同)

Joh*_*n T 6

因为我记得java 5,InetAdress类包含一个名为isReachable()的方法; 所以你可以使用它在java中进行ping实现.您还可以为此方法指定超时.这只是上面发布的单元测试方法的另一种替代方法,可能更有效.

  • isReachable只测试你可以到达网站,而不是网站实际上正在运行(例如,返回200而不是500等). (3认同)