Android中的服务器可用性检查程序

时间:2017-01-21 10:06:06

标签: java android

我正在尝试检查设备的互联网连接,如果互联网可用...我需要检查服务器是否在线。我已经在stackflow中搜索了很多,但没有最新解决方案可用,如下所示

1

2

但是当人们评论和审判时,它们都没有正常工作。我正在使用以下代码检查设备的互联网状态

public static boolean isInternetAvailable(Context context) {
    ConnectivityManager connectivity = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    boolean isActiveNetworkConnected = false;

    if (connectivity != null) {

        NetworkInfo info = connectivity.getActiveNetworkInfo();

        if (info != null) {
            if (info.getState() == NetworkInfo.State.CONNECTED) {

                isActiveNetworkConnected = true;
            } else {
                isActiveNetworkConnected = false;
            }
        }
    } else {
        isActiveNetworkConnected = false;
    }

    return isActiveNetworkConnected;
}

让我知道任何人都有适当的解决方案,可以使用此代码检查服务器是否可用。

2 个答案:

答案 0 :(得分:0)

检查互联网连接后,您只需点击测试API即可检查服务器状态。如果服务器响应正常,则启动下一个工作或在其他情况下处理服务器没有响应用户的消息,将请求发送到服务器。

以下是使用okhttp

的示例
public boolean isServerUp(){

    private final OkHttpClient client = new OkHttpClient();

      public void run() throws Exception {
        Request request = new Request.Builder()
            .url("your server url here")
            .build();

        client.newCall(request).enqueue(new Callback() {
          @Override public void onFailure(Call call, IOException e) {
            e.printStackTrace();
            return false;
          }

          @Override public void onResponse(Call call, Response response) throws IOException {
            if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
            return true; 
          }
        });
      }
      return false;
}

答案 1 :(得分:0)

要在检查网络后检查服务器的当前状态,需要检查响应是否为空