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

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

Войти
Регистрация
Восстановить пароль
 
Ghbphfr
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 18
#1

Получить json - Программирование Android

11.03.2016, 15:57. Просмотров 264. Ответов 5
Метки нет (Все метки)

Здравствуйте. Мне нужно получить следующий json ответ с моего сайта для мобильного приложения.
XML
1
{"count":23,"next":null,"previous":null,"results":[{"title":"Открытки про осень","slug":"otkrytki-pro-osen"},{"title":"Открытки на выпускной 2016 и окончание школы","slug":"otkrytki-na-vypusknoj-2016-i-okonchanie-shkoly"},{"title":"Открытки с Днём России 12 июня","slug":"otkrytki-s-dnyom-rossii-12-iyunya"},{"title":"Открытки с 9 мая — Днём Победы","slug":"otkrytki-s-9-maya-dnyom-pobedy"},{"title":"Открытки с 1 мая","slug":"otkrytki-s-1-maya"},{"title":"Открытки с Пасхой 1 мая 2016","slug":"otkrytki-s-pashoj-1-maya-2016"},{"title":"Открытки с Масленицей","slug":"otkrytki-s-maslenicej"},{"title":"Открытки на день матери","slug":"otkrytki-na-den-materi"},{"title":"Открытки с 1 сентября","slug":"otkrytki-s-1-sentyabrya"},{"title":"Открытки к свадьбе","slug":"otkrytki-k-svadbe"},{"title":"Открытки с рождением","slug":"otkrytki-s-rozhdeniem"},{"title":"Картинки с надписями","slug":"kartinki-s-nadpisyami"},{"title":"Открытки с Днём ангела","slug":"otkrytki-s-dnyom-angela"},{"title":"Открытки улыбнись!","slug":"otkrytki-ulybnis"},{"title":"Выздоравливай!","slug":"vyzdoravlivaj"},{"title":"Открытки скучаю","slug":"otkrytki-skuchayu"},{"title":"Открытки с добрым утром","slug":"otkrytki-s-dobrym-utrom"},{"title":"Открытки спокойной ночи","slug":"otkrytki-spokojnoj-nochi"},{"title":"Открытки любимым с признанием в любви","slug":"otkrytki-lyubimym-s-priznaniem-v-lyubvi"},{"title":"Поздравительные открытки","slug":"pozdravitelnye-otkrytki"},{"title":"Открытки с 8 марта","slug":"otkrytki-s-8-marta"},{"title":"Открытки на юбилей","slug":"otkrytki-na-yubilej"},{"title":"Открытки с днём рождения","slug":"otkrytki-s-dnyom-rozhdeniya"}]}
Используя эту статью параметр json всегда получается null
JSON
1
JSONObject json = jParser.makeHttpRequest(url, "GET", params);
AssyncTask:
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
public class UpdateTask extends AsyncTask<String, Void, JSONObject> {
        Context context;
 
        public UpdateTask(Context context) {
            super();
            this.context = context;
        }
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
 
        @Override
        protected JSONObject doInBackground(String... urls) {
            return loadJSON(urls[0]);
        }
 
        public JSONObject loadJSON(String url) {
 
            JSONParser jParser = new JSONParser();
            // здесь параметры необходимые в запрос добавляем
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("page", "1"));
            // посылаем запрос методом GET
            JSONObject json = jParser.makeHttpRequest(url, "GET", params);
 
            return json;
        }
 
        @Override
        protected void onPostExecute(JSONObject jsonData) {
            // если какой-то фейл, проверяем на null
            // фейл может быть по многим причинам: сервер сдох, нет сети на устройстве и т.д.
            if (jsonData != null) {
                super.onPostExecute(jsonData);
                String res = "";
                try {
 
                    res = jsonData.getString("title");
 
 
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            } else {
 
            }
        }
    }
Мне нужно просто получить json. На странице нет запроса прав доступа.
http://127.0.0.1:8000/galleries/?format=json&page=1
В браузере все срабатывает, в коде нет.

В JSonParcer.class я только изменил формирование параметра, но при дебаггинге строка запроса получается верной.
JSON
1
url += "?format=json" + "&" + paramString;
Как проще и правильней получать такие json ответы? Что я делаю не так?

Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2016, 15:57     Получить json
Посмотрите здесь:

Не получается получить json - Программирование Android
Пытаюсь получить json строку с http://217.12.194.171:31/server/api/users/getusers Использую для примера...

Не могу получить json по https - Программирование Android
Доброго времени суток не могу получить json по https коннект проходит package com.devcolibri.parser; import...

Получить json в ответ на POST запрос - Программирование Android
Никак не могу добиться получения json с помощью вывода его через echo в PHP скрипте. Если перенаправлять запрос на файл .json, то всё...

Послать POST запрос с параметрами и получить json - Программирование Android
Всем привет! Столкнулся с проблемой. Как послать POST запрос и получить назад результат json. Опишу подробно: Есть апи сайта, на...

Получить json в приложении и вывести его в listview во фрагмент - Программирование Android
Здравствуйте, у меня такая проблема не могу разобраться как получить json в приложение и вывести его в listview во фрагмент.

Ошибка - Errororg.json.JSONExceprion: Value bd.json of type java.lang.String cannot be converted to JSONObject - Программирование Android
Здравствуйте! Есть база данных bd.json, которая находится в проекте в папке assets. Вот содержимое базы данных; { &quot;name&quot;:...

Получить JSON и передать все его параметры его в Intent. Использован автофильтр - Программирование Android
Всем привет. Я тут запутался, помогите разобраться. Стоит задача выполнить такой функционал: получить данные JSON, один из параметров...

JSON - Программирование Android
В продолжение моей борьбы с json, поделитесь полезными ссылками для изучения, буду очень признателен. И вот вопрос, у меня есть массив...

Парсинг JSON - Программирование Android
Дали задание Мне надо воссоздать структуру JSON в сообственных объектах. Т.е. парсить надо не в String (например), а сделать вот что: -...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
11.03.2016, 16:17     Получить json #2
Ghbphfr, добрый день!
Честно говоря, не хочется копаться в других функциях типа makeHttpRequest. Может быть, использовать HttpUrlConnection или AsyncHttpClient? Попробуйте взять другой url (найдите в Сети примеры json'ов и url оттуда) и посмотреть результат.

Добавлено через 1 минуту
Кстати, разрешение на Интернет стоит в манифесте?

Добавлено через 1 минуту
Цитата Сообщение от Ghbphfr Посмотреть сообщение
doInBackground(String... urls)
Коль скоро у вас есть конструктор класса, вынесите все параметры туда, а в doInBackground напишите просто: doInBackground(Void... params).
mr_lancevrot
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 9
11.03.2016, 17:49     Получить json #3
Проверь то, что сказал товарищ выше И на будущее, прогугли Robospice в связке с retrofit, намного удобнее и быстрее, чем asynctask
Ghbphfr
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 18
11.03.2016, 18:55  [ТС]     Получить json #4
Перед публикацией скрипта на shared хостинг я хочу приложение настроить, чтобы потом просто url поменять и опубликовать в googleplay
Мне удалось выяснить, что виновато подключение к локалке. Я использовал jsoup и метод приведенный выше. В обоих случаях ошибка ниже. В google сказали поменять порт на 8080 и указать localhost . Но почему то не сработало.
Java
1
String json = Jsoup.connect(params[0]).timeout(1000000).ignoreContentType(true).execute().body();
JSON
1
java.net.ConnectException: failed to connect to /127.0.0.1 (port 8000) after 1000000ms: isConnected failed: ECONNREFUSED (Connection refused)
<uses-permission android:name="android.permission.INTERNET" /> прописан

Как исправить эту ошибку? В чем причина ошибки я не понимаю.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
12.03.2016, 00:28     Получить json #5
Ghbphfr, так 8080 или 8000? И причём тут localhost?
Ghbphfr
0 / 0 / 0
Регистрация: 11.03.2016
Сообщений: 18
12.03.2016, 18:26  [ТС]     Получить json #6
CoolMind, Решение ошибки описано тут ссылка, и как то связано вот это

Мне нужно просто подключаться к локалхосту, но у меня не получается. Обычные сайты с доменами парсятся без проблем.

Добавлено через 1 час 48 минут
The localhost refers to the device on which the code is running, in this case the emulator.

If you want to refer to the computer which is running the Android simulator, use the IP address 10.0.2.2 instead. You can read more from here.
Локальный относится к устройству, на котором код выполняется, в этом случае эмулятор.

Если вы хотите обратиться к компьютеру, который работает на Android симулятор, использовать IP-адрес 10.0.2.2 вместо этого. Вы можете прочитать больше здесь.
К какому адресу мне обращаться я не понимаю.

Добавлено через 10 часов 43 минуты
Прошу прощения. Изначально вопрос был про работу с json. В итоге вопрос вылился в другую тему и быть может мне поэтому сразу не помогли. Но решил проблему я по следующим статьям: 1)Accessing a localhost server from the Genymotion Android emulator 2) How to Run an Android App against a localhost API 3)How to connect Localhost in your MAC to your Android Device OR Android Emulator

Запустил сервере по http://127.01.01:8080 или http://localhost:8080

И в коде запуская через эмулятор Genymotion поменял строку запроса, он и в webbrowser так же сработает, я не с того конца подошел
Java
1
2
3
        String url = "http://10.0.3.2:8080/galleries/?format=json&page=1";
        final DownloadJson load = new DownloadJson();
        load.execute(url);
Yandex
Объявления
12.03.2016, 18:26     Получить json
Ответ Создать тему
Опции темы

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