使用Java,我如何测试URL是否可联系,并返回有效的响应?
http://stackoverflow.com/about
答案 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