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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.92
Critically
10 / 10 / 0
Регистрация: 14.03.2011
Сообщений: 337
#1

Post запрос XML - Android

07.12.2012, 20:04. Просмотров 3121. Ответов 22
Метки нет (Все метки)

Добрый день, подскажите, как сделать post запрос, отправляться должна xml вида:
XML
1
2
3
4
5
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<login>debugger</login>
<password>123456</password>
</data>
В интернете смотрел примеры, они не подходят, а те что я пробовал как пример делать тупо крашат приложение...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Critically
10 / 10 / 0
Регистрация: 14.03.2011
Сообщений: 337
10.12.2012, 00:30  [ТС]     Post запрос XML #21
Не получается что то... Ошибок полно на GetValue ругается
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.12.2012, 01:00     Post запрос XML #22
какие ошибки?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2012, 02:32     Post запрос XML
Еще ссылки по теме:

Android POST Запрос
Android Post запрос
Android Оборвать POST-запрос к серверу
POST запрос Android
Android Не передается POST запрос

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

Или воспользуйтесь поиском по форуму:
Critically
10 / 10 / 0
Регистрация: 14.03.2011
Сообщений: 337
10.12.2012, 02:32  [ТС]     Post запрос XML #23
Так вроде бы нашел рабочий вариант:

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
75
76
77
78
79
80
81
82
83
84
85
86
public void onClickFirst(View v){
    Thread test = new Thread(new Runnable()
    { 
        public void run()
        {  
            String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
                         "<data>" +
                         "<login>"+Login.getText()+"</login>" +
                         "<password>"+Password.getText()+"</password>" +
                         "</data>";
       
       HttpClient httpclient = new DefaultHttpClient();
       HttpPost httppost = new HttpPost("http://smsservice2.itakazan.ru/Service/XMLService.asmx/Balance");
 
       try {
           
           httppost.setEntity(new StringEntity(str));
           final HttpResponse response = httpclient.execute(httppost);
           nameView2.post(new Runnable(){
            public void run () {
                   HttpEntity mResEntityGet = response.getEntity();
                    if (mResEntityGet != null) {
                                    final String LOG_TAG = "myLogs";
                                    String tmp = "";
                            try {
                                content = EntityUtils.toString(mResEntityGet);
                                 nameView2.setText(content);
                                                                
                                XmlPullParser xpp = prepareXpp();
 
                                  while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) {
                                    switch (xpp.getEventType()) {
                                    // начало документа
                                    case XmlPullParser.START_DOCUMENT:
                                      Log.d(LOG_TAG, "START_DOCUMENT");
                                      break;
                                    // начало тэга
                                    case XmlPullParser.START_TAG:
                                      Log.d(LOG_TAG, "START_TAG: name = " + xpp.getName()
                                          + ", depth = " + xpp.getDepth() + ", attrCount = "
                                          + xpp.getAttributeCount());
                                      tmp = "";
                                      for (int i = 0; i < xpp.getAttributeCount(); i++) {
                                        tmp = tmp + xpp.getAttributeName(i) + " = "
                                            + xpp.getAttributeValue(i) + ", ";
                                      }
                                      if (!TextUtils.isEmpty(tmp))
                                        Log.d(LOG_TAG, "Attributes: " + tmp);
                                      break;
                                    // конец тэга
                                    case XmlPullParser.END_TAG:
                                      Log.d(LOG_TAG, "END_TAG: name = " + xpp.getName());
                                      break;
                                    // содержимое тэга
                                    case XmlPullParser.TEXT:
                                      Log.d(LOG_TAG, "text = " + xpp.getText());
                                      break;
 
                                    default:
                                      break;
                                    }
                                    // следующий элемент
                                    xpp.next();
                                  }
                                  Log.d(LOG_TAG, "END_DOCUMENT");
 
                                } catch (XmlPullParserException e) {
                                  e.printStackTrace();
                                } catch (IOException e) {
                                  e.printStackTrace();
                                }                                                                                                                   
                    }
            }
 
             XmlPullParser prepareXpp() throws XmlPullParserException {
                    // получаем фабрику
                    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                    // включаем поддержку namespace (по умолчанию выключена)
                    factory.setNamespaceAware(true);
                    // создаем парсер
                    XmlPullParser xpp = factory.newPullParser();
                    // даем парсеру на вход Reader
                    xpp.setInput(new StringReader(content));
                    return xpp;
                  }
           });
XML-ка парсится, но не могли бы вы помочь, как это все дело организовать что бы: Если тег account, то взять из него значение и записать в переменную ?

Добавлено через 1 час 4 минуты
Ну вроде все разобрался... Кому интересно:
Java
1
2
3
4
case XmlPullParser.START_TAG:
String tagName = xpp.getName();
if (tagName.equalsIgnoreCase("code")){
nameView2.setText(xpp.nextText());
При этом, ниже НЕ должно стоять
Java
1
case XmlPullParser.END_TAG:
ато будет выбивать с ошибкой... Так как NextText() при этом возвращает null
Yandex
Объявления
10.12.2012, 02:32     Post запрос XML
Ответ Создать тему
Опции темы

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