正确的方法来测试服务器是否在Java中运行?

时间:2012-03-04 06:03:52

标签: java android connection ping

简单地查看是否可以建立与网站/服务器的连接的正确方法是什么?我希望这个用于我编写的应用程序,如果我的网站离线,它会提醒我。

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以使用HttpURLConnection发送请求并检查响应正文以查找该页面唯一的文本(而不仅仅是检查是否存在响应,以防万一错误或维护页面或某些内容是送达)。

Apache Commons有一个库,它删除了许多用Java创建Http请求的样板。

我从未在Android上做过这样的事情,但如果有任何不同,我会感到惊讶。

这是一个简单的例子:

URL url = new URL(URL_TO_APPLICATION);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream stream = connection.getInputStream();
Scanner scanner = new Scanner(stream); // You can read the stream however you want. Scanner was just an easy example
boolean found = false;
while(scanner.hasNext()) {
    String next = scanner.next();
    if(TOKEN.equals(next)) {
        found = true;
        break;
    }
}

if(found) {
    doSomethingAwesome();
} else {
    throw aFit();
}

答案 1 :(得分:1)

您还想使用setConnectTimeout(int timeout)setReadTimeout(int timeout)设置连接超时。否则,代码可能会挂起很长时间,等待无响应的服务器回复。