How can I programmatically test an HTTP connection

2019-01-22 19:46发布

Using Java, how can I test that a URL is contactable, and returns a valid response?

http://stackoverflow.com/about

3条回答
男人必须洒脱
2楼-- · 2019-01-22 20:20

The solution as a unit test:

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;
    }
}
查看更多
闹够了就滚
3楼-- · 2019-01-22 20:27

Since java 5 if i recall, the InetAdress class contains a method called isReachable(); so you can use it to make a ping implementation in java. You can also specify a timeout for this method. This is just another alternative to the unit test method posted above, which is probably more efficient.

查看更多
兄弟一词,经得起流年.
4楼-- · 2019-01-22 20:32
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");
        }
    }
}

Output:

url is valid
url is invalid

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

查看更多
登录 后发表回答