Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Rifano998822
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 18
#1

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

27.05.2014, 18:33. Просмотров 571. Ответов 3
Метки нет (Все метки)

Здравствуйте! Скажу сразу, я в программировании на андроид полный НОЛЬ. Есть задача написать приложения 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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2014, 18:33
Ответы с готовыми решениями:

Написать функцию, которая возвращается True, если символ, полученный функцией в качестве аргумента, является гласной буквой русского алфавита
Люди добрые помогите исправить ошибки, а то в Си не оч) Написать функцию,...

Тестирую работоспособность сайта и есть неудача
Когда пытаюсь зарегаться или войти пишет: Warning: Cannot modify header...

Если возвращается переменная ссылочного типа, то возвращается объект или просто ссылка
Почему-то авторы всегда акцентируют внимание на передачу параметров в функцию,...

не возвращается значение
В методе /// &lt;summary&gt; /// Воспроизведение звука после остановки ...

Присвоить логической переменной T значение true, если значение d-цифра, и значение false в противном случае
Имеется символьная переменная d, присвоить логической переменной T значение...

3
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
27.05.2014, 18:37 #2
ну так эт, в дебаге посмотрите что он возвращает, или логи поставьте:

Java
1
2
3
4
5
6
urlc.connect();
Log.d("URL_CONNECTION", "" + urlc.getResponseCode()); 
        if (urlc.getResponseCode() == 200) {
            urlc.disconnect();
             return true;
        }
0
Rifano998822
0 / 0 / 0
Регистрация: 23.01.2013
Сообщений: 18
28.05.2014, 15:54  [ТС] #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;
          }
 
    }
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
28.05.2014, 18:44 #4
Rifano998822, для справки. Любая тяжеловесная операция (работа с сетью, БД, обработка видео) выполняются в асинхронном режиме.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2014, 18:44

Не возвращается значение из функции
вот такая функция: function auth() {...

Из функции возвращается не то значение
Вот функция, программа возвращает -1, если все элементы равны. Этот кусок...

При проверке сайта валидатором, находит 30 ошибок и 16 предупреждений
При проверке сайта валидатором, находит 30 ошибок и 16 предупреждений, не могли...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru