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

косячит retrofit - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android GridView в фокусе http://www.cyberforum.ru/android-dev/thread1526354.html
Как можно программно установить фокус на сетке на экране в GridView например на позицию 0 ?
Программирование Android Расположение кнопки при программном добавлении Добрый день, уважаемые форумчане. Хотелось бы задать глупый вопрос, на который я так и не нашел ответа. Программно создаю кнопку при нажатии: RelativeLayout.LayoutParams lParams = new... http://www.cyberforum.ru/android-dev/thread1526308.html
Get the release certificate fingerprint Программирование Android
Здравствуйте хочу подключить свою игру к play services, для этого нужно два ключа debug и release, как получить debug понятно, а как release нет. В гайде написано : To get the release certificate...
Программирование Android Реализовать работу с WebDAV
Всем привет. Мне нужно реализовать работу с WebDAV. Как это сделать? Может есть готовый класс у кого? Добавлено через 21 минуту никто не поможет?(
Программирование Android TextView авторазмер текста http://www.cyberforum.ru/android-dev/thread1525961.html
android studio Textview имеет размеры 100% на 50%, заполняя половину экрана. В нем написано число, которое изменяется по нажатию на кнопку (рандом от 0 до 1000). Нужно, чтобы текст становился...
Программирование Android Изменение кодировки текста на UTF-8 Пытаюсь сделать вывод текста из файла в textView, через поток передаю текст в String и вывожу. Но допустим при открытии некоторых fb2 выводятся кракозябры. В начале файла fb2 указана кодировка:... подробнее

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

косячит retrofit - Программирование Android

07.09.2015, 17:18. Просмотров 314. Ответов 0
Метки (Все метки)

Решил поюзать Retrofit в своем приложении.
Сделал вот так

Java
1
2
3
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.retrofit:retrofit:1.9.0'
compile 'com.google.code.gson:gson:2.3'
Сервис

Java
1
2
3
public interface UserService {
    @GET(Constants.Api.URL_LOGIN)
    void loginUser(@Query("email") String email, @Query("password") String password, @Query("secret") String secret, @Query("device_id") String device_id, @Query("oub_key") String pub_key, @Query("device_name") String device_name, Callback<String> cb);
Ну и наконец в активити

Java
1
2
3
4
5
RestAdapter restAdapter = new RestAdapter.Builder()
                .setEndpoint(Constants.Api.URL_BASE)
                .setLogLevel(RestAdapter.LogLevel.FULL)
                .build();
        apiService = restAdapter.create(UserService.class);
На этот код при первой компиляции все ок, при второй тоже ок. Проходит какое то время и оп

Java
1
Caused by: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2 path $

Пробуем поставить retrofit совеременненький, 2.0 с Call и Responce

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
Call<String> responce = service.loginUser(loginedt.getText().toString(), md5(passwordedt.getText().toString()), secret, device_id, pub_key, device_name);
 
                    responce.enqueue(new Callback<String>() {
 
                        @Override
                        public void onResponse(Response<String> response) {
                            if (response.code() == Constants.Status.ERROR_404) {
                                Toast.makeText(LoginActivity.this, getResources().getString(R.string.wrong_log_pass), Toast.LENGTH_LONG).show();
                            } else if (response.code() != Constants.Status.ERROR_404 && response.code() != Constants.Status.SUCCES) {
                                Toast.makeText(LoginActivity.this, getResources().getString(R.string.wrong_request), Toast.LENGTH_LONG).show();
                            } else {
                                startActivity(new Intent(LoginActivity.this, MainActivity.class));
                            }
                            loginPb.setVisibility(View.GONE);
                            loginBtn.setVisibility(View.VISIBLE);
                        }
 
                        @Override
                        public void onFailure(Throwable t) {
                            t.printStackTrace();
                            loginPb.setVisibility(View.GONE);
                            loginBtn.setVisibility(View.VISIBLE);
                        }
                    });
Запиливаем, получаем

Java
1
Caused by: java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2 path $

Берем старый добрый HttpGet

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
try {
                String url = Constants.Api.URL_BASE + Constants.Api.URL_LOGIN;
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
                nameValuePairs.add(new BasicNameValuePair("email", params[0]));
                nameValuePairs.add(new BasicNameValuePair("password", params[1]));
                nameValuePairs.add(new BasicNameValuePair("secret", params[2]));
                nameValuePairs.add(new BasicNameValuePair("device_id", params[3]));
                nameValuePairs.add(new BasicNameValuePair("pub_key", params[4]));
                nameValuePairs.add(new BasicNameValuePair("device_name", params[5]));
                HttpClient httpClient = new DefaultHttpClient();
                String paramsString = URLEncodedUtils.format(nameValuePairs, "UTF-8");
                HttpGet httpGet = new HttpGet(url + "?" + paramsString);
                HttpResponse response = httpClient.execute(httpGet);
            } catch (Exception e) {
                e.printStackTrace();
            }

В ответе все круто, 200, acces и тд.

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