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

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

Восстановить пароль Регистрация
 
илья9696
 Аватар для илья9696
71 / 71 / 16
Регистрация: 15.11.2014
Сообщений: 407
Завершенные тесты: 1
15.05.2016, 02:43     Отправка логина, пароля на сервер с эмулятора #1
Доброго дня.


Отправляю на сервер логин и пароль, чтобы проверить совпадение пары в БД, но почему-то не отправляет и пишет ошибку 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 Отправка nmea на сервер
Android Отправка данных на сервер
Отправка запроса на сервер и принять результат Android
Android Отправка данных на сервер
Android Отправка данных на сервер методом POST c AsyncTask
Android Отправка данных из андроид приложения на сервер
Отправка post запросов на сервер Android
Android Скрыть элемент View после ввода логина и пароля на другом активити
Android Android, отправка фотографии на сервер
Скачивание текста с применением логина и пароля Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
15.05.2016, 12:20     Отправка логина, пароля на сервер с эмулятора #2
илья9696, да, он отвечает String объектом, причём с кодировкой надо ещё разобраться, а Вы пытаетесь получить JSONObject
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,810
Завершенные тесты: 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
 Аватар для илья9696
71 / 71 / 16
Регистрация: 15.11.2014
Сообщений: 407
Завершенные тесты: 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 минут
Теперь даже выполняется вход в эмуляторе, но естественно с любыми данными логина и пароля
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,810
Завершенные тесты: 1
15.05.2016, 13:53     Отправка логина, пароля на сервер с эмулятора #5
почему бы не продолжить этот монолог в разделе php ?
Yandex
Объявления
15.05.2016, 13:53     Отправка логина, пароля на сервер с эмулятора
Ответ Создать тему
Опции темы

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