В моем приложении для Android у меня есть метод, который проверяет соединение с сервером по URL-адресу. Он отлично работает, но только на устройствах с oreo и ниже. Из метода android 9 getResponseCode() из HttpUrlConnection всегда возвращается IOException. Logcat также показывает предупреждение на строку кода с urlc.connect();
W/System.err: в pl.wrestleone.goodwrestleone.MainActivity.isURLReachable(MainActivity.java:290)
Как я могу исправить это странное поведение метода? Спасибо за любую помощь.
static public boolean isURLReachable(Context context, String webUrl) {
ConnectivityManager cm;
cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL(webUrl); // Change to "http://google.com" for www test.
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(10 * 1000); // 10 s.
urlc.connect();
if (urlc.getResponseCode() == 200) { // 200 = "OK" code (http connection is fine).
return true;
} else {
return false;
}
} catch (MalformedURLException e1) {
return false;
} catch (IOException e) {
return false;
}
}
return false;
}
HTTPS
или добавьте конфигурацию сетевой безопасности. - person Martin Zeitler   schedule 30.12.2018