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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.72
rial2001
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 5
#1

Пример простого http- запроса - Программирование Android

31.05.2012, 15:28. Просмотров 7221. Ответов 9
Метки нет (Все метки)

Добрый день!
прошу посодействовать в решении данного вопроса:
имеется устройство в локальной сети с IP 192.168.1.1, которое воспринимает команды по http, например оправляем с браузера http://192.168.1.28:/command2, если все нормально - в браузере видим "Ок"
ЗАДАЧА: отправлять эти команды с Android-устройства нажатием кнопки
есть много различных универсальных программ, но хочется сделать под себя...

есть хорошая статья, но там XML-ответ, да и вообще просто не осилил сам алгоритм обработки((((

Заранее прошу не пинать за незнание базовых вещей, в эклипсе проект есть, экспорт умею, не могу определится с кодом для кнопки

ЗЫ хотелось бы еще реализовать индикацию пинга данного устройства (зеленый - есть, красным - нет)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 15:28     Пример простого http- запроса
Посмотрите здесь:

Пример выполнения (HTTP) запроса к веб-сервису и разбор ответа - Программирование Android
Здравствуйте! Просмотрев кучу форумов и прочитав много статей, не нашёл ответа на вопрос как создать приложение в Андроид которое...

Составление http запроса - Программирование Android
Нужен запрос в котором передаются логин и пароль, и затем выводятся данные уже авторизованного пользователя, например страница либо...

Два http get запроса в одном AsyncTask - Программирование Android
Добрый день, при вызове двух последовательных http get запросов происходит следующая ситуация: первый запрос выполняется полностью ...

Ограничить время выполнения HTTP запроса - Программирование Android
Всем привет Имеется код, работающий на отдельном сервисе BufferedReader rdr = null; HttpClient client = new...

Пример запроса к базе sqlite - Программирование Android
Подскажите пример запроса к базе с условием WHERE.

Написание простого калькулятора - Программирование Android
Решил начать учиться писать приложения с калькулятора. Проблем с выводом чисел от 1-9 не было. Когда подошел черед арифметических...

Исходники для простого чата - Программирование Android
Пытаюсь найти код для простого чата - никаких облак и опенфаер; пара PHP страниц на своем сервере, 2-3 активити на клиенте. Можно тупо...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
31.05.2012, 16:17     Пример простого http- запроса #2
Цитата Сообщение от rial2001 Посмотреть сообщение
имеется устройство в локальной сети с IP 192.168.1.1, которое воспринимает команды по http
для начала нужно с этим разобраться, так как если отправлять запросы с аппарата то это уже будет не локально.
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
31.05.2012, 16:30     Пример простого http- запроса #3
Цитата Сообщение от NiRamz Посмотреть сообщение
для начала нужно с этим разобраться, так как если отправлять запросы с аппарата то это уже будет не локально.
ну почему, если телефон подключен к этой же сети, то не проблема.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
31.05.2012, 16:35     Пример простого http- запроса #4
Цитата Сообщение от silentnuke Посмотреть сообщение
ну почему, если телефон подключен к этой же сети, то не проблема.
конечно нет, но он разве указал по какой сети подключаемся?)
rial2001
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 5
31.05.2012, 18:22  [ТС]     Пример простого http- запроса #5
Цитата Сообщение от NiRamz Посмотреть сообщение
конечно нет, но он разве указал по какой сети подключаемся?)
телефон и устройство в одной сети: устройство подключено по витой паре, телефон на WiFi. Роутер один. Классическая домашняя сеть
hellslade
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
01.06.2012, 07:10     Пример простого http- запроса #6
Сложность то в чем? Отправить запрос или распарсить ответ?
Соседнюю тему DefaultHttpClient видели?
rial2001
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 5
01.06.2012, 10:00  [ТС]     Пример простого http- запроса #7
Цитата Сообщение от hellslade Посмотреть сообщение
Сложность то в чем? Отправить запрос или распарсить ответ?
Соседнюю тему DefaultHttpClient видели?
Спасибо за подсказку, уже оставил свой вопросик.
сложность и в отправке и в получении ответа. по сути ответ могу вывести посредством text viev полностью т.к. букв там мало)))
после того как разберусь - тему закрою кодом, думаю будет полезно
Также хотел уточнить индикацию пинга (описал выже)...
hellslade
4 / 4 / 0
Регистрация: 06.04.2012
Сообщений: 20
01.06.2012, 13:51     Пример простого http- запроса #8
Цитата Сообщение от rial2001 Посмотреть сообщение
Спасибо за подсказку,
Для этого есть спец. кнопка

Цитата Сообщение от rial2001 Посмотреть сообщение
сложность и в отправке и в получении ответа.
Все в той же теме есть код и отправки и получения ответа. Вам нужно чуть его изменить -- это несложно, если разберетесь в нем.
rial2001
0 / 0 / 0
Регистрация: 31.05.2012
Сообщений: 5
02.06.2012, 20:57  [ТС]     Пример простого http- запроса #9
грубо прикрутил вот с данной статьи хабра
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package MyGate.rial;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.*;
 
public class MyGateActivity extends Activity {
    /** Called when the activity is first created. */
     @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            final Button button = (Button) findViewById(R.id.refrbutton);
            button.setOnClickListener(new Button.OnClickListener() {
                public void onClick(View v) // клик на кнопку
                {
                    RefreshTemper();
                }
            });
 
                    };
        //----------------------------------------------------------------
        public String GetTemper(String urlsite) // фукция загрузки температуры
        {
            String matchtemper = "";
            try
            {
                    // загрузка страницы
                URL url = new URL(urlsite);
                URLConnection conn = url.openConnection();
                InputStreamReader rd = new InputStreamReader(conn.getInputStream());
                StringBuilder allpage = new StringBuilder();
                int n = 0;
                char[] buffer = new char[40000];
                while (n >= 0)
                {
                    n = rd.read(buffer, 0, buffer.length);
                    if (n > 0)
                    {
                        allpage.append(buffer, 0, n);                    
                    }
                }
                // работаем с регулярками
                final Pattern pattern = Pattern.compile
                ("<span style=\"color:#[a-zA-Z0-9]+\">[^-+0]+([-+0-9]+)[^<]+</span>[^(а-яА-ЯёЁa-zA-Z0-9)]+([а-яА-ЯёЁa-zA-Z ]+)");
                Matcher matcher = pattern.matcher(allpage.toString());
                if (matcher.find())
                {    
                    matchtemper = matcher.group(1);            
                }        
                return matchtemper;
            }
            catch (Exception e)
            {
                
            }
            return matchtemper;  
        };
        //----------------------------------------------------------------
        public void RefreshTemper()
        { 
            final TextView tTemper = (TextView) findViewById(R.id.temper);
             String bashtemp = "";
              bashtemp = GetTemper("http://192.168.1.28/command2");
            tTemper.setText(bashtemp.concat("°")); // отображение температуры
        };
    }
В настоящее время пытаюсь разобраться с обработкой ответа с устройства: если ответ содержит "CONNECT", то выводим "ВСЕ НОРМАЛЬНО"
Вопросик: как добавить в text_viev дату\время ответа телефона? Т.е. каждый раз когда нажимаю кнопку пишет "ВСЕ НОРМАЛЬНО+02.06.2012 20:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2012, 21:41     Пример простого http- запроса
Еще ссылки по теме:

Что вернёт метод простого класса - Программирование Android
доброго времени суток. Имеем простой класс. import android.accounts.Account; import android.accounts.AccountManager; import...

Ошибка при запуске простого приложения - Программирование Android
При запуске простейшего приложения вот что выводится в консоль: ------------------------------ Android Launch! adb is running...

СМЕТА очень простого андроид приложения - Программирование Android
Добрый день уважаемые специалисты! Помогите пожалуйста советом, и не серчайте за неопытность. Нужно очень простое приложение для андроид(...

Ошибка при создании простого браузера из примера - Программирование Android
Здравствуйте. Пытаюсь создать простой браузер из реального примера. Пример взял отсюда...

Нужен прокомментированный код простого клиент-серверного приложения - Программирование Android
Народ, я буду очень благодарен за помощь. Только начал изучать Java в рамках мобильных приложений и после изучения элементарных вещей зашел...


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

Или воспользуйтесь поиском по форуму:
silentnuke
Android Programmer
138 / 139 / 5
Регистрация: 08.12.2010
Сообщений: 421
02.06.2012, 21:41     Пример простого http- запроса #10
Цитата Сообщение от rial2001 Посмотреть сообщение
В настоящее время пытаюсь разобраться с обработкой ответа с устройства: если ответ содержит "CONNECT", то выводим "ВСЕ НОРМАЛЬНО"
Вопросик: как добавить в text_viev дату\время ответа телефона? Т.е. каждый раз когда нажимаю кнопку пишет "ВСЕ НОРМАЛЬНО+02.06.2012 20:57
собсвтенно в чем проблема конкретно ?
получить время -
Java
1
2
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy HH:mm");
String dateString = format.format( new Date()   );
Выше привиденной пример работы с сетью, как раз больше подходит под то как НЕ НУЖНО делать.
Ибо все длительные операции, а работа с сетью, это как раз тот самый случай, не нужно запускать не UI потоке, ибо если задержатся выполнение до 5+ секунд, сразу пользователь увидит сообщения, что приложение возможно зависло. Почитайте лучше на хабре хотябы про работу через asynctask
Yandex
Объявления
02.06.2012, 21:41     Пример простого http- запроса
Ответ Создать тему
Опции темы

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