Форум программистов, компьютерный форум CyberForum.ru

Не возвращается значение TRUE в проверке на работоспособность сайта - Android

Войти
Регистрация
Восстановить пароль
 
Rifano998822
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 18
27.05.2014, 18:33     Не возвращается значение TRUE в проверке на работоспособность сайта #1
Здравствуйте! Скажу сразу, я в программировании на андроид полный НОЛЬ. Есть задача написать приложения WebView на андроид. Страницу сайта открывает, наличие соединения проверяет. Практически приложение уже готово. Хочу еще доработать проверку на работоспособность сайта. Есть скрипт и он не возвращает значение true. Не могу разобратся почему, все время пишет: "Отсутствует соединение с сайтом. - false" если должно вернуть true.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
if(checkIsWorkServer("http://google.com"))
{
   mWebView.loadUrl("http://example.com");
}
else
{
   mWebView.loadDataWithBaseURL(null, "<html><body style='background-color:#FFE600;'>"
     + "<div align='center' style='font-size:30px; font-weight:bold; color:#C70000;'>"
     + "<b>Отсутствует соединение с сайтом."
     + "</div></body></html>", "text/html", "utf-8", null);
}
 
public boolean checkIsWorkServer(String serviceURL) {
    try {
        URL url = new URL(serviceURL);
        HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
        urlc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:6.0.2) Gecko/20100101 Firefox/6.0.2");
        urlc.setRequestProperty("Connection", "close");
        urlc.setConnectTimeout(1000 * 10);
         
        urlc.connect();
        if (urlc.getResponseCode() == 200) {
            urlc.disconnect();
             return true;
        }
    } 
    catch (Exception e) {
        e.printStackTrace();
    }
return false;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 18:33     Не возвращается значение TRUE в проверке на работоспособность сайта
Посмотрите здесь:

Равнозначность <Return true> и возврата конструктора суперкласса Android
Android Переданное значение REQUEST_LOGIN = 1 возвращает другое значение
Android Получить содержимое сайта
Android Движение ImageView. Объект возвращается на исходную позицию
Android При проверке элемента массива на пустоту вылетает исключение
Парсинг сайта Android
LayoutInflater и android:textIsSelectable="true" Android
Парсинг сайта Android
GridView после нажатия назад возвращается на первую ячейку Android
Android Android:debuggable="true"
Android Парсер сайта
MinifyEnabled true Log и комментарии Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.05.2014, 18:37     Не возвращается значение TRUE в проверке на работоспособность сайта #2
ну так эт, в дебаге посмотрите что он возвращает, или логи поставьте:

Java
1
2
3
4
5
6
urlc.connect();
Log.d("URL_CONNECTION", "" + urlc.getResponseCode()); 
        if (urlc.getResponseCode() == 200) {
            urlc.disconnect();
             return true;
        }
Rifano998822
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 18
28.05.2014, 15:54  [ТС]     Не возвращается значение TRUE в проверке на работоспособность сайта #3
Логами пользоватся еще не научился) Как аналог использую:
Java
1
Toast.makeText(this, "Ошибка: "  + urlc.getResponseCode(), Toast.LENGTH_LONG).show();
Интересно что до urlc.connect(); все сообщения работаю, а вто после - тишина, не работает дальше скрипт. Не получается отследить. Теперь понятно почему не ретурнится значение TRUE. Только не понятно где я сделал ошибку в запросе?

Добавлено через 15 часов 5 минут
Нашел решение (в нужном месте вызываем new checkIsWorkUrl().execute("http://example.com");):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//AsyncTask
private class checkIsWorkUrl extends AsyncTask<String, String, String> {
     protected String doInBackground(String... urls) {
     String n = "";
        try {
            URL url = new URL(urls[0]);
             
            HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
            urlc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:6.0.2) Gecko/20100101 Firefox/6.0.2");
            urlc.setRequestProperty("Connection", "close");
            urlc.setConnectTimeout(1000 * 3);
            urlc.connect();
                        
                if (urlc.getResponseCode() == 200) {
                       urlc.disconnect();
                       n = "ok";
                }
                        
            } 
            catch (Exception e) {
                // Обрабатываем ошибку
                e.printStackTrace();
            }
            if(n == "ok"){
                mWebView.loadUrl(urls[0]);
            }
            else{
                mWebView.loadDataWithBaseURL(null, "<html><body style='background-color:#FFE600;'>"
                            + "<div align='center' style='font-size:30px; font-weight:bold; color:#C70000;'>"
                            + "Отсутствует соединение с сайтом."
                            + "</div></body></html>", "text/html", "utf-8", null);
                }
        return null;
          }
 
    }
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
28.05.2014, 18:44     Не возвращается значение TRUE в проверке на работоспособность сайта #4
Rifano998822, для справки. Любая тяжеловесная операция (работа с сетью, БД, обработка видео) выполняются в асинхронном режиме.
Yandex
Объявления
28.05.2014, 18:44     Не возвращается значение TRUE в проверке на работоспособность сайта
Ответ Создать тему
Опции темы

Текущее время: 22:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru