Запросы на api Post на Авторизацию

386
27 января 2017, 06:03

Можете подсказать , мне надо понять и научиться как написать POST запрос на сервером (https://inecopay.ru/inecogate/doc/dist/index.html?url=https://inecopay.ru/inecogate/doc/inecogate_api.json#/) 1. при нажатие на кнопку вход, надо отправить запрос на сервер и получить ответ

вот код , я получаю данные, но вопрос в том что мне надо получить код от responseCode и на ответе сделать действие , но почему то не я получаю responseCode только тогда кода нажимаю 2 раз на ту же кнопку , не понимаю где ошибка , можете объяснить как сделать чтобы responseCode сразу я получал

public void onVxodClick(View view) {
    ExecutorService service = Executors.newCachedThreadPool();
    log = login.getText().toString();
    pas = pass.getText().toString();

    service.submit(new Runnable() {
        @Override
        public void run() {
            try {
                BufferedReader reader = null;
                URL url = new URL("https://inecopay.ru/inecogate/rest/api/v1.0/api/login");
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setReadTimeout(10000);
                connection.setRequestMethod("POST");
                connection.setConnectTimeout(15000);
                connection.setRequestProperty("Accept", "application/json");
                connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                connection.setDoInput(true);
                connection.setDoOutput(true);
                Uri.Builder builder = new Uri.Builder()
                        .appendQueryParameter("login", log)
                        .appendQueryParameter("password", pas);
                String query = builder.build().getEncodedQuery();
                DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
                wr.writeBytes(query);
                wr.flush();
                wr.close();
                connection.connect();
                reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                StringBuilder buf = new StringBuilder();
                String line = null;
                code = connection.getResponseCode();
                while ((line = reader.readLine()) != null) {
                    buf.append(line + "\n");
                }
                str = (buf.toString());
                Log.d("happy", "Данные на сервере" + str + "code = " + code);
            } catch (MalformedInputException e) {
                e.printStackTrace();
            } catch (IOException e) {
               e.printStackTrace();
            }
            content.setText( str  );
        }
    });
    scanUser(code);
}
private void scanUser(int codee) {
        if(codee == 200){
            Intent intent = new Intent(this, MainAccaunt.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            finish();
        }else if (codee == 400) {
       Toast.makeText(this, "Не заданы все обязательные параметры", Toast.LENGTH_SHORT).show();
        }else if (codee == 401) {
       Toast.makeText(this, "Неправильный логин или пароль", Toast.LENGTH_SHORT).show();
        }else if (codee == 402) {
       Toast.makeText(this, "e-Mail еще не прошел валидацию", Toast.LENGTH_SHORT).show();
        }
    }
READ ALSO
Конвертация строки в коды символов Unicode

Конвертация строки в коды символов Unicode

Имею приложение2 EditText, один - поле ввода текста в utf, второй - вывод преобразованного текста в формате \uXXXX\uXXXX\uXXXX Я ввожу: "Привет", а в ответ должен...

342
Android studio layout

Android studio layout

Всем доброго времени суток

297