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

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

Войти
Регистрация
Восстановить пароль
 
илья9696
73 / 73 / 16
Регистрация: 15.11.2014
Сообщений: 424
Завершенные тесты: 1
#1

Отправка логина, пароля на сервер с эмулятора - Программирование Android

15.05.2016, 02:43. Просмотров 458. Ответов 4
Метки нет (Все метки)

Доброго дня.


Отправляю на сервер логин и пароль, чтобы проверить совпадение пары в БД, но почему-то не отправляет и пишет ошибку E/JSON*Parser: Error parsing data org.json.JSONException: Value ���� of type java.lang.String cannot be converted to JSONObject

Есть подозрение, что 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
@SuppressWarnings("deprecation")
public class MainActivity extends AppCompatActivity {
    //
    Button buttonCreateUser, buttonLogin;
    EditText ID_CUSTOMER, PASSWORD;
    //
    final static String NOT_CONNECT = "NOT_CONNECT";
    final static String SUCCESS = "SUCCESS";
    final static String FAILED = "FAILED";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        buttonCreateUser = (Button)findViewById(R.id.buttonCreateUser); // кнопка создания пользователей
        buttonLogin = (Button)findViewById(R.id.buttonLogin); // кнопка входа пользователя
        ID_CUSTOMER = (EditText)findViewById(R.id.ID_CUSTOMER);
        PASSWORD = (EditText)findViewById(R.id.PASSWORD);
    }
 
    public void setButtonLogin(View v){
        AsyncTask<String, Void, JSONObject> task = new AsyncTask<String, Void, JSONObject>() {
                @Override
                protected JSONObject doInBackground(String... params) {
                    JSONParser jsonParser = new JSONParser();
                    List<NameValuePair> loginpass = new ArrayList<NameValuePair>();
                    loginpass.add(new BasicNameValuePair("ID_CUSTOMER", params[0]));
                    loginpass.add(new BasicNameValuePair("PASSWORD", params[1]));
                    JSONObject json = jsonParser.makeHttpRequest("http://5.19.187.230/connect.php", JSONParser.POST, loginpass);
                    return json;
                }
                @Override
                protected void onPostExecute(JSONObject result) {
                    if (result != null) {
                        super.onPostExecute(result);
                        String res = "";
                        try {
                            res = result.getString("status");
                            switch (res) {
                                case NOT_CONNECT:
                                    Toast toast_not_connect = Toast.makeText(getApplicationContext(), "Сервер недоступен", Toast.LENGTH_SHORT);
                                    toast_not_connect.setGravity(Gravity.CENTER, 0, 0);
                                    toast_not_connect.show();
                                    break;
 
                                case SUCCESS:
                                    Toast toast_success = Toast.makeText(getApplicationContext(), "Вход выполнен", Toast.LENGTH_SHORT);
                                    toast_success.setGravity(Gravity.CENTER, 0, 0);
                                    toast_success.show();
                                    Intent intentB = new Intent(MainActivity.this, OrdersActivity.class);
                                    startActivity(intentB);
                                    break;
 
                                case FAILED:
                                    Toast toast_failed = Toast.makeText(getApplicationContext(), "Не правильно введен логин\n или пароль", Toast.LENGTH_SHORT);
                                    toast_failed.setGravity(Gravity.CENTER, 0, 0);
                                    toast_failed.show();
                                    break;
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
            };
            task.execute(ID_CUSTOMER.getText().toString(), PASSWORD.getText().toString());
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2016, 02:43     Отправка логина, пароля на сервер с эмулятора
Посмотрите здесь:
Скачивание текста с применением логина и пароля Android
Android DropBox Api. Авторазация без ввода логина и пароля
Android Скрыть элемент View после ввода логина и пароля на другом активити
Android Отправка данных на сервер
Android Отправка nmea на сервер
Android Отправка данных на сервер
Android Android, отправка фотографии на сервер
Отправка post запросов на сервер Android
Отправка смс на сервер. Кодировка? Android
Отправка запроса на сервер и принять результат Android
Android Отправка данных из андроид приложения на сервер
Отправка данных на сервер используя Retrofit Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
15.05.2016, 12:20     Отправка логина, пароля на сервер с эмулятора #2
илья9696, да, он отвечает String объектом, причём с кодировкой надо ещё разобраться, а Вы пытаетесь получить JSONObject
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
15.05.2016, 12:58     Отправка логина, пароля на сервер с эмулятора #3
сервер отдает ответ в кодировке "Windows-1251"
на самом деле ответ от него выглядит так
HTML5
1
2
3
4
5
6
7
8
9
10
11
База подключилась<br><br />
                          <b>Warning</b>:  ocibindbyname(): ORA-01036: illegal variable name/number in <b>C:\Server\data\htdocs\connect.php</b> on line <b>13</b><br />
                          <br />
                          <b>Warning</b>:  ocibindbyname(): ORA-01036: illegal variable name/number in <b>C:\Server\data\htdocs\connect.php</b> on line <b>14</b><br />
                          <br />
                          <b>Notice</b>:  Undefined variable: ID_CUSTOMER in <b>C:\Server\data\htdocs\connect.php</b> on line <b>35</b><br />
                          NULL
                          <br />
                          <b>Notice</b>:  Undefined variable: PASSWORD in <b>C:\Server\data\htdocs\connect.php</b> on line <b>36</b><br />
                          NULL
                          {"status":"SUCCESS"}
илья9696
73 / 73 / 16
Регистрация: 15.11.2014
Сообщений: 424
Завершенные тесты: 1
15.05.2016, 13:52  [ТС]     Отправка логина, пароля на сервер с эмулятора #4
У меня есть классы отправки данных на сервер(оформление заказа, регистрация), он идентичен этому и он работает, только там PHP адекватный, вот так например он выглядит, другой скрпт такой же, только вставка других данных, для этого класса не получается написать скрипт, слаб в 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
27
28
29
<?php
error_reporting(0);
$response = array();
$db_connect = oci_connect('','','');
if (!$db_connect)
{
    $response['status'] = 'NOT_CONNECT';
}else{
    $stmt = oci_parse($db_connect, 'INSERT INTO CUSTOMERS VALUES
    (:ID_CUSTOMER, :PASSWORD, :FIO, :PHONE, :NUMBER_CAR)');
    OCIBindByName($stmt, ":ID_CUSTOMER", $_POST['ID_CUSTOMER']);
    OCIBindByName($stmt, ":PASSWORD", $_POST['PASSWORD']);
    OCIBindByName($stmt, ":FIO", $_POST['FIO']);
    OCIBindByName($stmt, ":PHONE", $_POST['PHONE']);
    OCIBindByName($stmt, ":NUMBER_CAR", $_POST['NUMBER_CAR']);
    
    $result = oci_execute($stmt);
    if(!$result){
        $response["status"] = "FAILED";
    }else{
        $response["status"] = "SUCCESS";
    }
    oci_free_statement($stmt);
    oci_close($db_connect);
    $db_connect = null;
}
echo json_encode($response);
die();
?>
Добавлено через 2 минуты
Только там естественно вставка была, а тут надо селект сделать и сравнить полученные данные с данными на сервере

Добавлено через 14 минут
Определил ошибку, из-за надписи в скрипте PHP была

PHP
1
echo 'База подключена<br>';
Добавлено через 11 минут
Теперь даже выполняется вход в эмуляторе, но естественно с любыми данными логина и пароля
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
15.05.2016, 13:53     Отправка логина, пароля на сервер с эмулятора #5
почему бы не продолжить этот монолог в разделе php ?
Yandex
Объявления
15.05.2016, 13:53     Отправка логина, пароля на сервер с эмулятора
Ответ Создать тему
Опции темы

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