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

Обработка результата POST-запроса в Android - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Проконсультируйте пожалуйста http://www.cyberforum.ru/android-dev/thread1584695.html
Всем привет! Я являюсь инженером-электроником, занимаюсь разработкой электроники, пишу программы под МК. Сейчас мною разработано устройство с применением GSM модуля, которое управляет другими устройствами, все это осуществляется с помощью СМС. Устал набирать СМС-ки вручную, поэтому захотелось написать приложение под андроид, которое бы отсылало и принимало СМС-ки. Поймите меня правильно, я не...
Android Уведомление по заданному времени Я начинающий программист-самоучка, поэтому прошу помощи. Не могу разобраться как сделать, чтоб выводилось уведомление в заданное время и дату. Например, поздравление с новым годом. Как выводить уведомления понял, а вот как установить его на определённую дату и время? Если можно пример. http://www.cyberforum.ru/android-dev/thread1584451.html
Создание интернет журнала на Андроид Android
помогите создать интернет журнал на андроид
Обновление содержимого Recyclerview Android
Всем привет. Изучаю Android. Разрабатываю первое приложение. Создал список с помощью Recyclerview. Возникла проблема. После записи данных в БД новый пункт появляется только после перезапуска приложения. Объясните пожалуйста в теории как заставить обновляться этот список. Код проекта: https://bitbucket.org/devbanha/smart-wallet/src
Android Не работает php Web Server на устройстве с Android 5.0.2 http://www.cyberforum.ru/android-dev/thread1584148.html
Доброго времени суток, всем. У меня есть готовый продукт (web сайт написаный на php), и мне надо его приделать к этому девайсу (Lenovo PB1-770M)... мне веб сервер нужен, чтоб локально обеспечивал работу этому сайту (там литература систематизирована, а локальная работа этого ресурса обеспечивает поиск в этой библиотеке). Есть проторенная дорожка, устанавливаем Palapa Web Server, запускаем его и...
Android Прошу Вашей профессиональной консультации Всем здравствуйте уважаемые. Помогите разобраться в логах. Не могу "вкурить" что хочет от меня android studio. Добавил в свой проект код и библиотеки от appodiel, и тут начались с проектом проблемы. Писал им уже раза 4, и каждый раз у них новые версии. Ребята отвечают оперативно. Но что то пока должного эффект нет) Так как я еще слишком молодой программист прошу Вас помощи. Добавлено через... подробнее

Показать сообщение отдельно
geck
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 2

Обработка результата POST-запроса в Android - Android

18.11.2015, 13:26. Просмотров 330. Ответов 2
Метки (Все метки)

Приветствую, уважаемые программисты.
Изучаю программирование на Android. Пытаюсь сделать простенькое клиент-серверное приложение.
Задачу следующая - с android-а на сервер отправляется post запрос с данными для регистрации пользователя, сервер в ответ отправляет "yes" или "no", в зависимости от того произошла регистрация или нет.
Веб-сервер - Apache/2.4.17 (Win64) PHP/5.6.15.
Клиент - эмулятор Android API 15.

Код на Андроид:
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
87
88
89
90
91
92
93
94
95
96
private void insertToDatabase(String name, String pass, String firs, String last, String uinf){
        class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
            @Override
            protected String doInBackground(String... params) {
                String paramUsername = params[0];
                String paramPassword = params[1];
                String paramFirstName = params[2];
                String paramLastName = params[3];
                String paramUserInfo = params[4];
 
 
                String name = editTextUsername.getText().toString();
                String pass = editTextPassword.getText().toString();
                String firs = editTextFirstName.getText().toString();
                String last = editTextLastName.getText().toString();
                String uinf = editTextUserInfo.getText().toString();
 
 
                HashMap<String, String> postDataParams = new HashMap<String, String>();
                postDataParams.put("username", name);
                postDataParams.put("password", pass);
                postDataParams.put("first_name", firs);
                postDataParams.put("last_name", last);
                postDataParams.put("user_info", uinf);
 
                URL url;
                String response = "";
                try {
                    url = new URL("http://mysyte.ru/test/create-new-user.php");
 
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                    conn.setReadTimeout(15000);
                    conn.setConnectTimeout(15000);
                    conn.setRequestMethod("POST");
                    conn.setDoInput(true);
                    conn.setDoOutput(true);
 
 
                    OutputStream os = conn.getOutputStream();
                    BufferedWriter writer = new BufferedWriter(
                            new OutputStreamWriter(os, "UTF-8"));
                    writer.write(getPostDataString(postDataParams));
 
                    writer.flush();
                    writer.close();
                    os.close();
                    int responseCode=conn.getResponseCode();
 
                    if (responseCode == HttpsURLConnection.HTTP_OK) {
                        String line;
                        BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
                        while ((line=br.readLine()) != null) {
                            response+=line;
                        }
                    }
                    else {
                        response="";
 
                        throw new HttpException(responseCode+"");
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
 
                mAnswer = response;
                return mAnswer;
            }
 
            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(mAnswer);
 
                Toast.makeText(getApplicationContext(), mAnswer, Toast.LENGTH_LONG).show();
 
                if (mAnswer == "no")
                {Toast.makeText(getApplicationContext(),"Не получилось, попробуйте другой логин", Toast.LENGTH_SHORT).show();}
                else if (mAnswer == "yes")
                {Toast.makeText(getApplicationContext(),"Вы зарегистрированы", Toast.LENGTH_SHORT).show();                    
 
                    SharedPreferences.Editor editor = mSettings.edit();
                    editor.putString(APP_PREFERENCES_USERNAME, mUsername);
                    editor.putString(APP_PREFERENCES_PASSWORD, mPassword);
                    editor.putString(APP_PREFERENCES_FIRST_NAME, mFirstName);
                    editor.putString(APP_PREFERENCES_LAST_NAME, mLastName);
                    editor.putString(APP_PREFERENCES_USER_INFO, mUserInfo);
                    editor.apply();
 
 
                    Intent intent_inbox = new Intent(RegistrationActivity.this, AboutActivity.class);
                    startActivity(intent_inbox);
                }
            }
        }
        SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
        sendPostReqAsyncTask.execute(name, pass, firs, last, uinf);
    }
Код на PHP
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
<?php
  define('HOST','localhost');
  define('USER','root');
  define('PASS','000000');
  define('DB','test_db');
  $con = mysqli_connect(HOST,USER,PASS,DB);
 
  $username = $_POST['username'];
  $password = $_POST['password'];
  $first_name = $_POST['first_name'];
  $last_name = $_POST['last_name'];
  $user_info = $_POST['user_info'];
 
  $sql = "insert into userlist (username, user_password, user_first_name, user_last_name, user_info) 
            values ('$username','$password', '$first_name', '$last_name', '$user_info')";
  
 
  if(mysqli_query($con,$sql)){
    echo 'yes';  
  }
  else{
    echo 'no';
   }
    
  mysqli_close($con);
?>
По задумке приложение получив ответ ("yes" или "no") сначала выводит этот ответ в виде всплывающего сообщения, потом обрабатывает полученный ответ.
Так вот проблема в том, что ответ приложение выводит, но не обрабатывает.
С БД все в порядке - данные заносятся исправно. Проблема именно в обработке ответа на стороне клиента.
Если я правильно понимаю, это связано с кодировками, т.е. веб-сервер отправляет ответ в UTF-8, а в Java String-и в UTF-16 или UCS-2(точно не знаю). Пытался поменять кодировку файла create-new-user.php на UCS-2 в Notepad++ - в этом случае отправка данных вообще не работает и во всплывающем сообщении отображается содержимое всего файла(с двумя непонятными символами перед текстом).
Кто уже сталкивался с проблемой или знает как решить - подскажите нубу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru