Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186

Android json, передача переменной

08.05.2017, 16:37. Показов 1086. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. В android приложение формирую json файл, как его в php разобрать? Что я делаю не так?
Кликните здесь для просмотра всего текста
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
public void onClick(View v) {
        switch (v.getId()) {
            case R.id.ButtonMessage:
                String name="Данил";
                String order_id="1";
                String fromFirebaseId="f9AopqZ4mKI:APA91bFayy2W8mXf-TqIzdg4IJ4xMGMYW2r_Ppgkd8W7nKQ5MxgKDqkkaS-pHfxHXmH3v-pAXtiZSNSGHb2e2zuznlPyn14so8tcqvkg6Dl5WXm_aHe0qGVGx7Qt3-rj1JG15ji0B-rn";
                AddMessages addMessages=new AddMessages();
                addMessages.execute(name, order_id, fromFirebaseId);
                break;
 
 
        }
    }
    class AddMessages extends AsyncTask<String, String, String> {
 
        HttpURLConnection urlConnection = null;
        BufferedOutputStream bos = null;
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
 
        }
 
        protected String doInBackground(String[] args) {
            try{
                URL url = new URL("http://test2.ru/index2.php");
 
                String _name = args[0];
                String _order_id = args[1];
                String _fromFirebaseId = args[2];
                Log.d("MyLOgs","name "+_name);
                Log.d("","order_id "+_order_id);
 
 
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("name", _name);
                jsonObject.put("order_id", _order_id);
                jsonObject.put("fromFirebaseId", _fromFirebaseId);
 
 
                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestProperty("Content-Type", "application/json");
                urlConnection.setRequestMethod("POST");
                urlConnection.setDoInput(true);
                urlConnection.setDoOutput(true);
                urlConnection.connect();
 
                bos = new BufferedOutputStream(urlConnection.getOutputStream());
                bos.write(jsonObject.toString().getBytes());
 
                String result = urlConnection.getResponseMessage();
                Log.d("", "server response: " + result);
            }//проверить, что вернет сервер
 
            catch(JSONException|MalformedURLException|ProtocolException e) {
                e.printStackTrace();
            }
            catch(IOException e){
 
            }
            finally {
                try{
                    bos.flush(); //очищает поток output-a
                    bos.close();
                }
                catch (IOException e){
 
                }
 
            }
        return null;
        }
        protected void onPostExecute(String result) {
            urlConnection.disconnect();
        }
 
    }

PHP
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
error_reporting(-1);
        ini_set('display_errors', 'On');
        
        $mysql_host="localhost"; //сервер
        $mysql_user="danil"; // пользователь
        $mysql_password="danil1213"; //пароль
        $database="android"; // название базы
    
        $name = $_POST['name'];
        $order_id = $_POST['order_id'];
        $fromFirebaseId = $_POST['fromFirebaseId'];
        
        
        
        require_once __DIR__ . '/firebase.php';
        require_once __DIR__ . '/push.php';
        
        $con = mysql_connect("$mysql_host", "$mysql_user", "$mysql_password") or die(mysql_error());
    $db=mysql_select_db("$database") or die(mysql_error());
 
 
    $result = mysql_query("INSERT INTO messages(name, order_id, fromFirebaseId) VALUES('$name', '$order_id', '$fromFirebaseId')");
    if ($result) {
        // successfully updated
        $response["success"] = 1;
        $response["message"] = "Product successfully updated.";
 
        echo json_encode($response);
    } else {
        $response["success"] = 0;
        $response["message"] = "Product not updated";       
        echo json_encode($response);
    }
Добавлено через 49 секунд
Если нашли ошибку, можете написать как будет правильно
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.05.2017, 16:37
Ответы с готовыми решениями:

Android JSON
Народ можете скинуть статеек или пару примеров написать как принимать. Настроил сервер на элементарный ответ А вот теперь хочу что бы...

Android Parse Json
Здравствуйте, я хочу, чтобы разобрать JSON * мой JSON является: { message: &quot;Magazines&quot;, magazines: , thumbnail:...

Android Json Load More
Здравствуйте, я работал JSON. У меня есть два класса (private class LoadDataToServer extends AsyncTask и class loadMoreListView extends...

6
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
08.05.2017, 19:57
Цитата Сообщение от danilshik Посмотреть сообщение
В android приложение формирую json файл
это вы делаете не так. вы на сервере просто принимаете key-value значения, а не json.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("POST");
 
                urlConnection.setDoInput(true);
                urlConnection.setDoOutput(true);
 
                Map<String, String> params = new HashMap<>();
                params.put("name", name);
                params.put("order_id", orderId);
                params.put("fromFirebaseId", fromFirebaseId);
 
                OutputStream os = urlConnection.getOutputStream();
                BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
                writer.write(getPostDataString(params));
                writer.flush();
                writer.close();
                os.close();
 
                urlConnection.connect();
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private String getPostDataString(Map<String, String> params) throws UnsupportedEncodingException {
            StringBuilder result = new StringBuilder();
            boolean first = true;
            for(Map.Entry<String, String> entry : params.entrySet()){
                if (first)
                    first = false;
                else
                    result.append("&");
 
                result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
                result.append("=");
                result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
            }
 
            return result.toString();
        }
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
08.05.2017, 23:44  [ТС]
Спасибо, а как можно с помощью Json?
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
09.05.2017, 11:13
danilshik, тогда вопрос не в этом разделе, если вы хотите код сервера править. https://www.cyberforum.ru/php-beginners/ вам в помощь.
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
09.05.2017, 11:42  [ТС]
вы не поняли, я про клиентскую часть, код формирования правильный?
Java
1
2
3
4
JSONObject jsonObject = new JSONObject();
                jsonObject.put("name", _name);
                jsonObject.put("order_id", _order_id);
                jsonObject.put("fromFirebaseId", _fromFirebaseId);
Добавлено через 12 секунд
json
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
09.05.2017, 12:15
Цитата Сообщение от danilshik Посмотреть сообщение
код формирования правильный
да, правильный
0
4 / 4 / 2
Регистрация: 04.04.2015
Сообщений: 186
14.05.2017, 15:03  [ТС]
Чтобы не создавать новую тему
Имеется код
Кликните здесь для просмотра всего текста
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
public void onClick(View v) {
        switch (v.getId()) {
            case R.id.ButtonMessage:
                String method="addMessages";
                String name="Данил";
                String messages="Тестовое отправление";
                String order_id="1";
                String fromFirebaseId="f9AopqZ4mKI:APA91bFayy2W8mXf-TqIzdg4IJ4xMGMYW2r_Ppgkd8W7nKQ5MxgKDqkkaS-pHfxHXmH3v-pAXtiZSNSGHb2e2zuznlPyn14so8tcqvkg6Dl5WXm_aHe0qGVGx7Qt3-rj1JG15ji0B-rn";
                AddMessages addMessages=new AddMessages(this);
                addMessages.execute(method, name, messages, order_id, fromFirebaseId);
                break;
        }
class AddMessages extends AsyncTask<String, Void, String> {
 
        Context ctx;
        AddMessages(Context ctx){
            this.ctx=ctx;
        };
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
 
        }
 
        protected String doInBackground(String... args) {
 
                String addMessages_url = "http://test2.ru/index2.php";
                String method=args[0];
                String name=args[1];
                String messages=args[2];
                String order_id=args[3];
                String fromFirebaseId=args[4];
 
            URL url = null;
            try {
                url = new URL(addMessages_url);
                HttpURLConnection httpURLConnection=(HttpURLConnection)url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoInput(true);
                httpURLConnection.setDoOutput(true);
                OutputStream OS = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(OS,"UTF-8"));
            String data=URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode(name,"UTF-8")+"&"+
                    URLEncoder.encode("messages","UTF-8")+"="+URLEncoder.encode(messages,"UTF-8")+"&"+
                    URLEncoder.encode("order_id","UTF-8")+"="+URLEncoder.encode(order_id,"UTF-8")+"&"+
                    URLEncoder.encode("fromFirebaseId","UTF-8")+"="+URLEncoder.encode(fromFirebaseId,"UTF-8");
                bufferedWriter.write(data);
                bufferedWriter.flush();
                bufferedWriter.close();
                OS.close();
                InputStream IS = httpURLConnection.getInputStream();
                IS.close();
                    return "Сообщение отправлено....";
 
 
 
            } catch (MalformedURLException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
 
 
            }
 
        return null;
        }
 
        protected void onPostExecute(String result) {
            Toast.makeText(ctx, result, Toast.LENGTH_LONG).show();
        }
 
    }

PHP
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
?php        
        $mysql_host="localhost"; //сервер
        $mysql_user="danil"; // пользователь
        $mysql_password="danil1213"; //пароль
        $database="android"; // название базы
    
        $name = $_POST['name'];
        $messages=$_POST['messages'];
        $order_id = $_POST['order_id'];
        $fromFirebaseId = $_POST['fromFirebaseId'];
        
        //$name = 'LFGUDFG';
        //$messages='SDFSDF';
        //$order_id = 'SDFSDFSDF';
        //$fromFirebaseId = 'SDFSDFSDF';
        
        
        
        require_once __DIR__ . '/firebase.php';
        require_once __DIR__ . '/push.php';
        
        $con = mysql_connect("$mysql_host", "$mysql_user", "$mysql_password") or die(mysql_error());
        
    $db=mysql_select_db("$database") or die(mysql_error());
 
 
    $result = mysql_query("INSERT INTO messages VALUES('$name', '$messages','$order_id', '$fromFirebaseId')");
    if ($result) {
        // successfully updated
        $response["success"] = 1;
        $response["message"] = "Product successfully updated.";
 
        echo json_encode($response);
    } else {
        $response["success"] = 0;
        $response["message"] = "Product not updated";       
        echo json_encode($response);
    }
?>
Не добавляется запись в БД, а понять в чем дело не пойму. Если в php изменить переменные на текст, до запись добавляется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.05.2017, 15:03
Помогаю со студенческими работами здесь

Json android изображение
Нужна помощь, нужно парсить фотки с открытой группы вконтакте, в переложение

JSON и Android: распарсить строку
Ребята помогите распарсить строку вида Делал так: public class JSON { private JSONObject jsonObject; ...

Android. Java. Парсинг. Json
Всем привет. В общем, проблема в следующем: нужно распарсить на андроиде json типа: {&quot;header&quot;: { &quot;param&quot;:...

MySQL через JSON в Android Studio
Всем категорический привет! Осваивала коннект MySQL с AS через урок: http://devcolibri.com/1548#comment-6659 Вывод перечня продуктов из...

Как встретить JSON из Android на сервере с PHP?
Привет, форумчане! Не могу понять как организовать встречу JSON на серваке с php, который приходит от Android приложения. Вот реализация...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru