我正在尝试检查设备的互联网连接,如果互联网可用...我需要检查服务器是否在线。我已经在stackflow中搜索了很多,但没有最新解决方案可用,如下所示
但是当人们评论和审判时,它们都没有正常工作。我正在使用以下代码检查设备的互联网状态
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;
}
让我知道任何人都有适当的解决方案,可以使用此代码检查服务器是否可用。
答案 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)
要在检查网络后检查服务器的当前状态,需要检查响应是否为空