[英]How to check url is reachable or not
我正在尝试检查服务器url是否可访问或在android中无法访问。 我要检查的网址是这样的: https://mydomain.se:8081/
: https://mydomain.se:8081/
: https://mydomain.se:8081/
,也可以从互联网访问。 但是在方法下面的某个时候遇到问题会返回true,有时会返回false。
public boolean isBackendAccessAble(String serverUrl) {
String host = serverUrl.substring(serverUrl.indexOf("://") + 3, serverUrl.lastIndexOf(":"));
int port = Integer.parseInt(serverUrl.substring(serverUrl.lastIndexOf(":") + 1, serverUrl.length() - 1));
boolean isReachable = false;
try {
SocketAddress sockAddress = new InetSocketAddress(host, port);
Socket sock = new Socket();
int timeoutMs = 2000; // 2 seconds
sock.connect(sockAddress, timeoutMs);
isReachable = true;
} catch (Exception e) {
Log.w(TAG, "Unable to check serverUrl:" + serverUrl);
}
return isReachable;
}
还有其他选择可以通过移动数据从android检查服务器吗?
public boolean isBackendAccessAble(String serverUrl) {
String host = serverUrl.substring(serverUrl.indexOf("://") + 3, serverUrl.lastIndexOf(":"));
int port = Integer.parseInt(serverUrl.substring(serverUrl.lastIndexOf(":") + 1, serverUrl.length() - 1));
boolean isReachable = false;
try {
SocketAddress sockAddress = new InetSocketAddress(host, port);
Socket sock = new Socket();
int timeoutMs = 2000; // 2 seconds
sock.connect(sockAddress, timeoutMs);
isReachable = true;
} catch (Exception e) {
Log.w(TAG, "Unable to check serverUrl:" + serverUrl);
if (e instanceof SocketTimeoutException ){
//the url is not reachable
isReachable=false;
}
}
return isReachable;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.