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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
#1

GET запрос - Android

17.05.2013, 20:47. Просмотров 1704. Ответов 11
Метки нет (Все метки)

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
public class RegistrationSender extends AsyncTask<Void, Void, Void> {
        private String source, ans="-2";
        
        public RegistrationSender(String source, String login, String action) {
            this.source = source+"?action="+action+"&login="+login;
        }
        private String convertStreamToString(InputStream is) {
            try {
                return new Scanner(is).useDelimiter("\\A").next();
            } catch (java.util.NoSuchElementException e) {
                return "";
            }
        }
        
        public String getAnswer() { return ans; }
        @Override
        protected Void doInBackground(Void... params) {
            try {
                URL url = new URL(source);
    
                InputStream is = url.openStream();   // тут вылетает чтоли? если вылетает, то почему все равно -2, а не -1
                is.close();
                ans = convertStreamToString(is);
 
            } catch (MalformedURLException e) {
                ans = "-1";
                e.printStackTrace();
            } catch (Throwable t) {
                ans = "-1";
                t.printStackTrace();
            }
            return null;
            
        }
 
        @Override
        protected void onPostExecute(Void result) {
                               // Переустанавливаем содержимое нашего поля
         //   textView.setText(Html.fromHtml(message, igCached, null));
        }
    }
Java
1
2
3
RegistrationSender r=new RegistrationSender("http://www.connections.ixrad.ru/registration.php","check","check");
                r.execute();
                Toast.makeText(getActivity(), r.getAnswer(), Toast.LENGTH_LONG ).show();
ВСЕГДА выводит -2, т.е. предустановленное значение... как так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2013, 20:47     GET запрос
Посмотрите здесь:

Post запрос Android
Android post запрос
SQL запрос Android
Android SQLite запрос
GET запрос Android
Android PUT запрос
Android GET запрос
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 20:57     GET запрос #2
подебагайте.
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
17.05.2013, 21:11  [ТС]     GET запрос #3
Java
1
2
3
4
5
6
7
Log.d("ans", " = "+ans);               // -2
                InputStream is = url.openStream();
                Log.d("ans", " = "+ans);               // -2
                is.close();
                Log.d("ans", " = "+ans);               // -2
                ans = convertStreamToString(is);
                Log.d("ans", " = "+ans);               // пусто
выходит ошибка в функции перевода..?
есть ли другие варианты?
выходить должна одна цифра,а не текста, если это имеет значение
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 21:13     GET запрос #4
эм, а зачем вы закрыли поток прежде чем прочли его?
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
17.05.2013, 21:19  [ТС]     GET запрос #5
или в этой функции вызывается исключение

Добавлено через 1 минуту
ну а как..записал, закрыл, использую)

Добавлено через 48 секунд
если закрывать после использования, то 1
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 21:20     GET запрос #6
неправильно. открыл-использую-закрыл.

Добавлено через 20 секунд
Цитата Сообщение от spydark91 Посмотреть сообщение
если закрывать после использования, то 1
ну вот...
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
17.05.2013, 21:21  [ТС]     GET запрос #7
почему же тогда при вызове getAnswer() -2....
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 21:22     GET запрос #8
так 1 или -2? вы меня запутали.
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
17.05.2013, 21:25  [ТС]     GET запрос #9
в логе 1, а при вызове getAnswer -2..
сам запутался

т.е. когда из самого класса я пишу в лог, то все ок
Java
1
2
3
4
5
                InputStream is = url.openStream();
ans = convertStreamToString(is);
                is.close();
                
                Log.d("ans", " = "+ans);               //  все ОК
теперь использую

Java
1
2
3
4
RegistrationSender r=new RegistrationSender("http://www.connections.ixrad.ru/registration.php","check","check");
                r.execute();
// в тосте -2
                Toast.makeText(getActivity(), r.getAnswer(), Toast.LENGTH_LONG ).show();
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 21:34     GET запрос #10
ну так таск еще не успел завершится и значение еще не записалось когда вы вызвали getAnswer, для этого и есть метод onPostExecute, в нем и делайте все что нужно с ответом.
spydark91
85 / 85 / 2
Регистрация: 03.03.2011
Сообщений: 1,873
17.05.2013, 22:05  [ТС]     GET запрос #11
опять же вопрос по моему незнанию java
как из вложенного класса обратиться к объекту из класса-родителя
т.е.
Java
1
2
3
4
5
6
class parent {
String str;
  class child {
      обращаемся к str
  }
}
Добавлено через 6 минут
понял,просто достаточно объявить str пабликом
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2013, 22:08     GET запрос
Еще ссылки по теме:

Android POST Запрос
Запрос по SOAP Android
Android Post запрос
Android GET запрос
Android Get - запрос

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

Или воспользуйтесь поиском по форуму:
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.05.2013, 22:08     GET запрос #12
Java
1
2
3
4
5
6
class parent {
String str;
  class child {
      {str = "1";}
  }
}
Добавлено через 2 минуты
у меня даже с private все работает.
Yandex
Объявления
17.05.2013, 22:08     GET запрос
Ответ Создать тему
Опции темы

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