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

时间:2008-11-12 23:52:24

标签: java http url httpconnection

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

http://stackoverflow.com/about

4 个答案:

答案 0 :(得分:40)

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

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

答案 1 :(得分:6)

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

答案 2 :(得分:0)

System.out.println(new InetSocketAddress("http://stackoverflow.com/about", 80).isUnresolved());
如果页面可以访问,则

提供 false ,这是前提条件。

为了完全涵盖最初的问题,您需要实现 http get post

答案 3 :(得分:-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 is valid
url is invalid

来源:http://www.mkyong.com/java/how-to-validate-url-in-java/