用Java检查网站状态

用Java检查网站状态,java,web,Java,Web,在Java中,是否有允许检查网站状态的标准库,即网站是否可访问 如果没有,是否有任何第三方库可以执行相同的操作?您可以使用HTTP库,如发出请求并检查返回代码您可以使用HTTP库,如发出请求并检查返回代码您可以使用jersey client大量示例,如 或者您可以使用org.apache.http.client。您可以使用jersey客户端,例如 或者您可以使用org.apache.http.client。您可以打开到URL的连接并检索响应代码和可选内容: public static b

在Java中,是否有允许检查网站状态的标准库,即网站是否可访问


如果没有,是否有任何第三方库可以执行相同的操作?

您可以使用HTTP库,如发出请求并检查返回代码

您可以使用HTTP库,如发出请求并检查返回代码

您可以使用jersey client大量示例,如


或者您可以使用org.apache.http.client。

您可以使用jersey客户端,例如


或者您可以使用org.apache.http.client。

您可以打开到URL的连接并检索响应代码和可选内容:

    public static boolean isSiteUp(URL site) {
        try {
            HttpURLConnection conn = (HttpURLConnection) site.openConnection();
            conn.getContent();
            if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                return true;
            }
            return false;
        } catch (SocketTimeoutException tout) {
            return false;
        } catch (IOException ioex) {
            // You may decide on more specific behaviour...
            return false;
        }
      }

什么样的响应代码,你认为意味着网站上下将取决于您的应用程序。如果您收到内容禁止的回复,这是否意味着该网站是为您的目的而建立的?除非该站点实际返回一个代码来表示我停机,否则您需要做出决定,例如,超时是否表示该站点实际停机,或者您是否存在本地防火墙问题等。但是,上面的一些变体应该足够了。

您可以打开到URL的连接并检索响应代码和可选内容:

    public static boolean isSiteUp(URL site) {
        try {
            HttpURLConnection conn = (HttpURLConnection) site.openConnection();
            conn.getContent();
            if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                return true;
            }
            return false;
        } catch (SocketTimeoutException tout) {
            return false;
        } catch (IOException ioex) {
            // You may decide on more specific behaviour...
            return false;
        }
      }

什么样的响应代码,你认为意味着网站上下将取决于您的应用程序。如果您收到内容禁止的回复,这是否意味着该网站是为您的目的而建立的?除非站点实际返回一个代码来表示我停机,否则您需要做出决定,例如,超时是否表示站点实际停机,或者您是否存在本地防火墙问题等。但是,上面的一些变体应该足够了。

您可以使用任何可以进行http调用的JAVA库。两个这样流行的java库是HttpClient和URLConnection

所以,您只需要使用上述任一库获取url的状态。若状态为200,那个么URL是向上的


如果您想在任何基于unix的机器上执行此操作,那么curl实用程序很容易知道状态。只需在curl上执行man操作,您将获得所有选项。

您可以使用任何可以进行http调用的JAVA库。两个这样流行的java库是HttpClient和URLConnection

所以,您只需要使用上述任一库获取url的状态。若状态为200,那个么URL是向上的


如果您想在任何基于unix的机器上执行此操作,那么curl实用程序很容易知道状态。只需在curl上做一个人,你就会得到所有的选项。

你可以做下面的事情,得到的响应是200,即可访问,否则不可访问

public static boolean isAccessable(String url, int timeout) {
    url = url.replaceFirst("https", "http"); // Otherwise an exception may
                                                // be thrown on invalid SSL
                                                // certificates.

    try {
        HttpURLConnection connection = (HttpURLConnection) new URL(url)
                .openConnection();
        connection.setConnectTimeout(timeout);
        connection.setReadTimeout(timeout);
        connection.setRequestMethod("HEAD");
        int responseCode = connection.getResponseCode();
        if (responseCode != 200) {
            return false;
        }
    } catch (IOException exception) {
        return false;
    }
    return true;
}

您可以执行以下操作,得到的响应为200,即可访问,否则不可访问

public static boolean isAccessable(String url, int timeout) {
    url = url.replaceFirst("https", "http"); // Otherwise an exception may
                                                // be thrown on invalid SSL
                                                // certificates.

    try {
        HttpURLConnection connection = (HttpURLConnection) new URL(url)
                .openConnection();
        connection.setConnectTimeout(timeout);
        connection.setReadTimeout(timeout);
        connection.setRequestMethod("HEAD");
        int responseCode = connection.getResponseCode();
        if (responseCode != 200) {
            return false;
        }
    } catch (IOException exception) {
        return false;
    }
    return true;
}

使用URLConnection,获取InputStream并尝试读取。如果超时,则无法访问您的网站。请使用URL连接,获取InputStream并尝试读取。如果超时,您的网站将无法访问。无需为此引入库。看,没有必要为此引进图书馆。看见