Ошибка подключения к Интернету

У меня есть приложение для Android, которое подключается к Интернету. Я улавливаю все возможные сценарии для подключения и замечаю, что, когда у меня нет подключения к Интернету, вызывается UnknownHostException . Я немного запутался здесь, так как получение UnknownHostException будет означать, что приложение смогло подключиться к Интернету, но не смог найти данный URL.

Я получаю правильное Исключение? Не могли бы вы объяснить, почему я получаю UnknownHostException в этом?

Кроме того, вы можете указать конкретные исключения для этих сценариев:

  • Когда нет подключения к Интернету.
  • Когда URL-адрес не найден.
  • Когда запрос истечет.
  • Когда сайт не работает.
  • Когда доступ запрещен.

Я также был бы признателен, если бы вы могли дать мне больше сценариев и исключений. Я должен уловить все возможные соединения и отобразить наиболее подходящее сообщение в зависимости от типа ошибки подключения.

Solutions Collecting From Web of "Ошибка подключения к Интернету"

Получение UnknownHostException будет означать, что приложение смогло подключиться к Интернету

Нет, нет. Это означает, что приложение не смогло решить имя хоста. Это может быть связано с тем, что имя хоста не существует или потому, что оно не удалось подключиться к Интернету для его устранения.

Когда нет подключения к Интернету.

Никакого конкретного исключения. «Нет подключения к Интернету» не имеет четко определенного смысла. Условие разрешает один из других режимов отказа ниже.

Когда URL-адрес не найден.

Если хост не найден, UnknownHostException . Если часть содержимого URL-адреса не найдена, HTTP 404.

Когда запрос истечет.

ConnectException с «отключенным SocketTimeoutException соединения» в качестве сообщения или SocketTimeoutException если это таймаут чтения.

Когда сайт не работает.

ConnectException с сообщением «connection отказано» как сообщение.

Когда доступ запрещен.

HTTP 403.

Проверка подключения к Интернету, просто попробуйте эту функцию …

 public static boolean CheckInternet(Context context) { ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI); android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); return wifi.isConnected() || mobile.isConnected(); } 

Надеюсь, эта помощь ….

Для проверки возможности подключения к Интернету ….

 boolean b_IsConnect = isNetworkAvailable(); private boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetworkInfo = connectivityManager .getActiveNetworkInfo(); return activeNetworkInfo != null; } 

Чтобы проверить подключение к Интернету, используйте эту функцию.

  public boolean isConnectingToInternet(){ ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) for (int i = 0; i < info.length; i++) if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } return false; }