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

Получение JSON с сервера - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Получение ответа в формате json http://www.cyberforum.ru/android-dev/thread1046694.html
пытаюсь получить ответ в формате json от моего php скрипта и разобрать его. В общих чертах: new RequestTask().execute("http://isaev.url.ph/getQuery.php"); ... class RequestTask extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... params) {
Программирование Android Запуск Activiry из Service Как запустить activity из сервиса так, чтобы при этом на фоне не показывалось основное приложение (которое рождает сервис) Наверное непонятно, объясню подробнее. Имеется сервис. По определенному событию он должен выводить popup окошко с заданным содержимым (картинка, кнопка): Intent popupIntent = new Intent(this, PopupActivity.class); ... http://www.cyberforum.ru/android-dev/thread1046402.html
Преобразования через матрицы Программирование Android
Подскажите пожалуйста можно ли с помощью матриц преобразований брать из атласа определенный кадр и рисовать на экране в заданной точке? Сейчас для этого использую: public void drawBitmap (Bitmap bitmap, Rect src, Rect dst, Paint paint) а как это сделать через: public void drawBitmap (Bitmap bitmap, Matrix matrix, Paint paint) ???
Программирование Android Не удаляется приложение с рабочего стола
Свое приложение закинул на телефон,установил,проверил все работает. Решил удалить как обычно. Удерживаю иконку приложения и перетаскиваю в корзину. Но телефон ни как на это не отреагировал. Удалил через Диспетчер > Мое приложение > Удалить. Почему с рабочего сразу не удаляется?Кто сталкивался с этим? P.S. Телефон Samsung GrandDuos v.4.1.2
Программирование Android При долгом нажатии вывести контекстное меню http://www.cyberforum.ru/android-dev/thread1046200.html
Здравствуйте, подскажите, пожалуйста, как сделать так, чтобы при долгом нажатии на адресную строку, выводилось контекстное меню. Браузер отображается через компонент WebView. BrowserActivity.java public class BrowserActivity extends Activity { WebView webview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...
Программирование Android Как растягивать фон в layout только по горизонтали Есть layout, у него установлена картинка в качестве фона. Проблема в том, что картинка теряет пропорции при растягивании. Надо, чтобы картинка растягивалась только по горизонтали, а не вместившееся по вертикали обрезалось. Единственное, что пока приходит на ум, создать потомок layout в котором в методе onMeasure устанавливать фон из Drawable который предварительно обрезать через ClipDrawable.... подробнее

Показать сообщение отдельно
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5

Получение JSON с сервера - Программирование Android

18.12.2013, 13:57. Просмотров 3234. Ответов 3
Метки (Все метки)

Есть класс который принимает строку URL и возвращает JSONObject

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
public class Json {
    
    public static JSONObject getJson(String url){
        
        InputStream is = null;
        String result = "";
        JSONObject jsonObject = null;
        Log.d("mylog", "http_url="+url);
        // HTTP
        try {           
            HttpClient httpclient = new DefaultHttpClient(); // for port 80 requests!
            HttpPost httppost = new HttpPost(url);
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
        } catch(Exception e) {
            return null;
        }
        Log.d("mylog", "// Read response to string");
        // Read response to string
        try {           
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8"),8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();  
            Log.d("mylog", "result="+result);
        } catch(Exception e) {
            return null;
        }
 
        // Convert string to object
        try {
            jsonObject = new JSONObject(result);            
        } catch(JSONException e) {
            return null;
        }
        Log.d("mylog", "jsonObject="+jsonObject);
        return jsonObject;
 
    }
    
}
Вызов из активити (запись в лог):
Java
1
Log.d("mylog", "JSON > "+Json.getJson("http://home-android.ru/client/autch"));
В лог попадает null, не пойму почему, даже в классе Json процедура не доходит до строки: Log.d("mylog", "// Read response to string");

В чем тут проблема?

Добавлено через 52 минуты
сделал в новом потоке, проблема решилась:
Java
1
2
3
4
5
6
new Thread() {  //открываем новый поток
            @Override
            public void run() {
                Log.d("mylog", "JSON > "+Json.getJson("http://home-android.ru/client/autch"));
            }
        }.start();
но теперь в логе это:
Java
1
2
3
4
12-18 11:41:04.544: D/mylog(16566): http_url=http://home-android.ru/client/autch 
12-18 11:41:04.944: D/mylog(16566): // Read response to string 
12-18 11:41:04.944: D/mylog(16566): result=п»їп»ї{"login":"sanu0074","pass":"pwd2"} 
12-18 11:41:04.964: D/mylog(16566): JSON > null
т.е. строку от сервера получает, а JSONObject возвращать нехочет... т.е. ошибка на этом участке:
Java
1
2
3
4
5
6
7
8
// Convert string to object 
        try { 
            jsonObject = new JSONObject(result);             
        } catch(JSONException e) { 
            return null; 
        } 
        Log.d("mylog", "jsonObject="+jsonObject); 
        return jsonObject;
Что здесь может быть?
Вот что в стек трейсе:
Код
12-18 11:46:03.914: E/myLOG(17965): org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject 
12-18 11:46:03.914: E/myLOG(17965):     at org.json.JSON.typeMismatch(JSON.java:111) 
12-18 11:46:03.914: E/myLOG(17965):     at org.json.JSONObject.<init>(JSONObject.java:158) 
12-18 11:46:03.914: E/myLOG(17965):     at org.json.JSONObject.<init>(JSONObject.java:171) 
12-18 11:46:03.914: E/myLOG(17965):     at ru.homeandroid.Json.getJson(Json.java:53) 
12-18 11:46:03.914: E/myLOG(17965):     at ru.homeandroid.MainActivity$1.run(MainActivity.java:98)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru