Retrofit

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
Angry_cat
Сообщения: 5
Зарегистрирован: 25 дек 2016, 19:31

Retrofit

Сообщение Angry_cat » 25 дек 2016, 20:12

Пытаюсь разобраться с Retrofitом. Есть JSON строка, расположенная по такой ссылке https://styleru2.herokuapp.com/quests/get/?id=1. Соответственно вводится user_id , который вводится заранее,а далее json строка парсится, но после LOGO 19 возникает ошибка Unable to create call adapter for interface retrofit2.Call Помогите, пожалуйста, разобраться, кто в этом шарит






Код: Выделить всё

public class GithubUser {

    @SerializedName("body")
    @Expose
    private String body;
    @SerializedName("time")
    @Expose
    private Integer time;
    @SerializedName("title")
    @Expose
    private String title;

    public String getBody() {
        return body;
    }
    public void setBody(String body) {
        this.body = body;
    }

    public Integer getTime() {
        return time;
    }

    public void setTime(Integer time) {
        this.time = time;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

}

Код: Выделить всё

public interface GitHubService {
    @GET("/quests/get/?id={user_id}")
    Call getQuest(@Query("user_id") String iser_id);




Код: Выделить всё

private void onUserConnect() {
        Log.d("LOGO", "12");


        ConnectivityManager connMgr = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
        Log.d("LOGO", "13");
        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
        Log.d("LOGO", "14");
        if (networkInfo != null && networkInfo.isConnected()) {
            Log.d("LOGO", "15");
            SharedPreferences sPref = getSharedPreferences("id", MODE_PRIVATE);
            Log.d("LOGO", "17");
            String user_id = sPref.getString("Idtest", "");

            Log.d("LOGO", "18");
            Retrofit retrofit = new Retrofit.Builder()

                    .baseUrl("https://styleru2.herokuapp.com")

                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
            Log.d("LOGO", "19");
            GitHubService service = retrofit.create(GitHubService.class);
            Log.d("LOGO", user_id);
            Call<GithubUser> call = service.getQuest(user_id);
            Log.d("LOGO", "21");
            call.enqueue(new Callback <GithubUser>(){
                @Override
                public void onResponse(Call<GithubUser> call, Response<GithubUser> response) {
                    Log.d("LOGO", "22");
                    Toast.makeText(getApplication(), "Даааааа", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onFailure(Call<GithubUser> call, Throwable t) {

                }


            });

        }
    }

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Retrofit

Сообщение klblk » 27 дек 2016, 13:29

Может изза этого?

Код: Выделить всё

Call<GithubUser> getQuest(@Query("user_id") String iser_id);

Angry_cat
Сообщения: 5
Зарегистрирован: 25 дек 2016, 19:31

Re: Retrofit

Сообщение Angry_cat » 27 дек 2016, 14:59

А что там именно не так, просто я не все точно понял, что-то не работало

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Retrofit

Сообщение klblk » 29 дек 2016, 07:20

т.е. разницы между этими строчками вы не видите:

Код: Выделить всё

 Call getQuest(@Query("user_id") String iser_id); //то что у вас
Call<GithubUser> getQuest(@Query("user_id") String iser_id); //то что предположил я

Angry_cat
Сообщения: 5
Зарегистрирован: 25 дек 2016, 19:31

Re: Retrofit

Сообщение Angry_cat » 29 дек 2016, 09:54

Это я понял, но тогда возникает ошибка, что блок "id={user_id}" должен быть статичным, а для динамичных параметров нужно использовать @Query, который у меня итак есть

Angry_cat
Сообщения: 5
Зарегистрирован: 25 дек 2016, 19:31

Re: Retrofit

Сообщение Angry_cat » 29 дек 2016, 10:05

А если убрать тот вопросительный знак, то оно работает, но ничего не возвращает

Angry_cat
Сообщения: 5
Зарегистрирован: 25 дек 2016, 19:31

Re: Retrofit

Сообщение Angry_cat » 29 дек 2016, 10:06

А если убрать тот вопросительный знак, то оно работает, но ничего не возвращает

Ответить