Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
glnix
14 / 14 / 5
Регистрация: 08.04.2013
Сообщений: 75
#1

Android query и HTTP Post - Программирование Android

17.03.2014, 10:18. Просмотров 1284. Ответов 6
Метки нет (Все метки)

Добрый день.
Очень уж понравилась библиотека. Но ни как не получается передать корректный POST запрос.
Вот кусок кода:
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
HashMap<String, Object> params = new HashMap<String, Object>();
        params.put("p[]", "1");
        params.put("p[]", "0");
        params.put("p[]", "");
        params.put("p[]", "");
        params.put("p[]", "0");
        params.put("p[]", "1");
        params.put("p[]", "");
        params.put("p[]", "");
        params.put("p[]", "");
        params.put("p[]", "");
        params.put("p[]", startStreetIdPOST);
        params.put("p[]", endStreetPOST);
        params.put("p[]", "1");
        params.put("p[]", "");
        params.put("p[]", startHousePOST + "#$" + endHousePOST);
        params.put("sms", "0");
        params.put("iphone", "");
        params.put("predvtsms", "");
        params.put("java", "0");
        for (Map.Entry<String, Object> entry : params.entrySet()) {
            Log.d(LOGTAG, entry.getKey()+ " "+entry.getValue());
        }
        aq.progress(R.id.pb1).ajax(GET_COST_POST_PAGE, params, JSONObject.class, new AjaxCallback<JSONObject>() {
Значение ключа p[] обновляется с каждым вызовом params.put(), что в общем то и логично.
Запихать бы это дело в ArrayList, но aq.ajax() такое дело не скушает.
Что делать? Печальбеда. =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2014, 10:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Android query и HTTP Post (Программирование Android):

HTTP post android - Программирование Android
Просмотрел множество статей об этом, пытался использовать простейший пример HttpRequest, но все оказалось не так уж легко. Просмотрел как...

http Post - Программирование Android
Такая проблема. В пост запросе, в хидер добавляю httpPost.addHeader(&quot;Content-Length&quot;, count); и вываливается исключение : ...

Русский Post запрос в базу через http - Программирование Android
Кто в курсе этого метода связи с БД на удаленном сервере, как через POST отправить переменные с русскими буквами? Английский воспринимает...

Http POST запрос, как правильно написать - Программирование Android
Добрый день, мне нужно отправить данные на сервер, посредством http post запросом, нужно добавить автомобиль, сам пост запрос выглядит вот...

HTTP Client для Android - Программирование Android
Доброго времени суток друзья. Столкнулся с такой проблемой. Нужно написать HTTP Client , я его вроде бы написал , но проблема в том ,что...

Подключение http библиотек в android studio - Программирование Android
Добрый день. android studio создал проект, авторизация пользователя с post запросом на сервер. Прописал подключение библиотек, при...

6
chizz
981 / 496 / 54
Регистрация: 19.03.2013
Сообщений: 3,095
Записей в блоге: 18
Завершенные тесты: 1
17.03.2014, 13:54 #2
Цитата Сообщение от glnix Посмотреть сообщение
Запихать бы это дело в ArrayList, но aq.ajax() такое дело не скушает.
Что делать? Печальбеда. =)
Цитата Сообщение от glnix Посмотреть сообщение
Но ни как не получается передать корректный POST запрос.
Так в чем проблема? Запихать в ArrayList или корректно передать POST запрос?
0
glnix
14 / 14 / 5
Регистрация: 08.04.2013
Сообщений: 75
17.03.2014, 14:15  [ТС] #3
Цитата Сообщение от chizz Посмотреть сообщение
Так в чем проблема? Запихать в ArrayList или корректно передать POST запрос?
chizz, проблема в том, что если я передаю Map, то у меня передается один параметр p[], а не массив.
Хотя тот же код, но с использованием ASyncTask и Apache.commons.net работает корректно, вот пример:
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
@Override
        protected Void doInBackground(String... strings) {
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(GET_COST_POST_PAGE);
                httppost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0");
                httppost.setHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
                httppost.setHeader("Accept", "application/json, text/javascript, */*; q=0.01");
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("p[]", "1"));
                params.add(new BasicNameValuePair("p[]", "0"));
                params.add(new BasicNameValuePair("p[]", ""));
                params.add(new BasicNameValuePair("p[]", ""));
                params.add(new BasicNameValuePair("p[]", "0"));
                params.add(new BasicNameValuePair("p[]", "1"));
                params.add(new BasicNameValuePair("p[]", ""));
                params.add(new BasicNameValuePair("p[]", ""));
                params.add(new BasicNameValuePair("p[]", ""));
                params.add(new BasicNameValuePair("p[]", ""));
                params.add(new BasicNameValuePair("p[]", strings[0]));
                params.add(new BasicNameValuePair("p[]", strings[2]));
                params.add(new BasicNameValuePair("p[]", "1"));
                params.add(new BasicNameValuePair("p[]", ""));
                params.add(new BasicNameValuePair("p[]", strings[1]+"#$"+strings[3]));
                params.add(new BasicNameValuePair("sms", "0"));
                params.add(new BasicNameValuePair("iphone", ""));
                params.add(new BasicNameValuePair("predvtsms", ""));
                params.add(new BasicNameValuePair("java", "0"));
                httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                result = EntityUtils.toString(entity,"UTF-8");
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
Т.е. все параметры передаются, сервер отвечает без ошибок.
0
chizz
981 / 496 / 54
Регистрация: 19.03.2013
Сообщений: 3,095
Записей в блоге: 18
Завершенные тесты: 1
17.03.2014, 14:19 #4
ПРобовал конвертнуть ArrayList в HashMap?

Java
1
2
3
4
HashMap<String, Product> productMap = new HashMap<String, Product>();
for (Product product : productList) {
   productMap.put(product.getProductCode(), product);
}
0
glnix
14 / 14 / 5
Регистрация: 08.04.2013
Сообщений: 75
17.03.2014, 14:58  [ТС] #5
Цитата Сообщение от chizz Посмотреть сообщение
ПРобовал конвертнуть ArrayList в HashMap?

Java
1
2
3
4
HashMap<String, Product> productMap = new HashMap<String, Product>();
for (Product product : productList) {
   productMap.put(product.getProductCode(), product);
}
chizz, попробовал, но безрезультатно. Так же заменяется значение по имени ключа.
0
chizz
981 / 496 / 54
Регистрация: 19.03.2013
Сообщений: 3,095
Записей в блоге: 18
Завершенные тесты: 1
17.03.2014, 15:35 #6
А если params.put("p[]", my_array_list);

Туда же можно любой Object пихнуть...
0
glnix
14 / 14 / 5
Регистрация: 08.04.2013
Сообщений: 75
18.03.2014, 07:47  [ТС] #7
Разобрался. Вот так нужно делать:
Java
1
2
3
4
5
6
7
8
9
10
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
       pairs.add(new BasicNameValuePair("p[]", "1"));
       pairs.add(new BasicNameValuePair("p[]", "0"));
       pairs.add(new BasicNameValuePair("p[]", ""));
       pairs.add(new BasicNameValuePair("p[]", ""));
       //и т.д.
       HttpEntity entity = new UrlEncodedFormEntity(pairs, "UTF-8");
       Map<String, Object> params = new HashMap<String, Object>();
       params.put(AQuery.POST_ENTITY, entity);
       aq.progress(R.id.pb1).ajax(GET_COST_POST_PAGE, params, JSONObject.class, “ajaxcb”);
0
18.03.2014, 07:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.03.2014, 07:47
Привет! Вот еще темы с ответами:

ANDROID и POST запрос - Программирование Android
Если честно я не знал в какой раздел лучше написать так как моя задача затрагивает несколько областей программирования. Если что извините...

Android POST запрос iii - Программирование Android
Всем привет, нужна помощь с POST запросами. Вообщем, есть голосовой ассистент &quot;Дуся&quot;. И в ней есть скрипт &quot;А-я-яй чат бот&quot;. Вообщем это...

Отправка Post запроса в Android предложении - Программирование Android
Есть определенная php страница надо отправить на нее Post запрос из Android приложения Например на такую страниц...

Обработка результата POST-запроса в Android - Программирование Android
Приветствую, уважаемые программисты. Изучаю программирование на Android. Пытаюсь сделать простенькое клиент-серверное приложение. ...


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

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

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