Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
илья9696
120 / 120 / 70
Регистрация: 15.11.2014
Сообщений: 543
Завершенные тесты: 3
#1

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

15.05.2016, 02:43. Просмотров 541. Ответов 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());
        }

http://www.cyberforum.ru/android-dev/thread1864587.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2016, 02:43
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Отправка логина, пароля на сервер с эмулятора (Программирование Android):

DropBox Api. Авторазация без ввода логина и пароля
Задача такая: программа должна сохранять рейтинг пользователя на сервере...

Скрыть элемент View после ввода логина и пароля на другом активити
Доброго времени суток. Подскажите как скрыть элемент View на другой активити...

Отправка данных на сервер
Здравствуйте форумчане. Возникла такая проблема, нужно организовать отправку...

Отправка данных на сервер
Нужна помощь. У меня кое-какие проблемы с кодом. Я отправляю данные на...

Отправка звонков на сервер
Всем привет подскажите как сделать приложение чтоб все входящие звонки...

4
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
15.05.2016, 12:20 #2
илья9696, да, он отвечает String объектом, причём с кодировкой надо ещё разобраться, а Вы пытаетесь получить JSONObject
0
Pablito
2652 / 2134 / 727
Регистрация: 12.05.2014
Сообщений: 7,447
Завершенные тесты: 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"}
0
илья9696
120 / 120 / 70
Регистрация: 15.11.2014
Сообщений: 543
Завершенные тесты: 3
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 минут
Теперь даже выполняется вход в эмуляторе, но естественно с любыми данными логина и пароля
0
Pablito
2652 / 2134 / 727
Регистрация: 12.05.2014
Сообщений: 7,447
Завершенные тесты: 1
15.05.2016, 13:53 #5
почему бы не продолжить этот монолог в разделе php ?
2
15.05.2016, 13:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2016, 13:53
Привет! Вот еще темы с решениями:

Отправка nmea на сервер
Вот таким образом пытаюсь отправить nmea строку на сайт(php) url =...

Отправка POST-запроса на сервер
Задача - отправить на сервер запрос (либо параметры для запроса на сервере) и...

Okhttp3 Отправка видео на сервер
Отправляю видео на сервер. public void DownloadVideoServer(){ File...

Android, отправка фотографии на сервер
Мне нужно отправить файл на сервер. После выбора фотографии в галереи мы...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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