используя модернизированные вызовы очереди - PullRequest
0 голосов
/ 07 сентября 2018

Я новичок в Android. Я пытаюсь позвонить в службу отдыха с jwt.
Есть ли лучший способ сделать эти 2 звонка?
Выглядит плохо, потому что вызов службы привязан к вызову jwt, и если токен jwt не истек, он не должен вызывать эту службу каждый раз, верно?

Заранее спасибо за Ваш отзыв

final GetDataService service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class);

        Call<Void> tokenCall = service.geToken(new AccountCredentials("admin", "password"));
        tokenCall.enqueue(new Callback<Void>() {
            @Override
            public void onResponse(Call<Void> call, Response<Void> response) {
                progressDialog.dismiss();
                token = response.headers().get("Authorization");

                Call<List<Event>> eventCall = service.getAllEvents(token);
                eventCall.enqueue(new Callback<List<Event>>() {

                    @Override
                    public void onResponse(Call<List<Event>> call, Response<List<Event>> response) {
                        progressDialog.dismiss();
                        generateDataList(response.body());
                    }

                    @Override
                    public void onFailure(Call<List<Event>> call, Throwable t) {
                        progressDialog.dismiss();
                        Toast.makeText(MainActivity.this, "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show();
                    }
                });
            }

            @Override
            public void onFailure(Call<Void> call, Throwable t) {
                progressDialog.dismiss();
                Toast.makeText(MainActivity.this, "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show();
            }
        });

1 Ответ

0 голосов
/ 07 сентября 2018

это хорошее решение. но вы можете улучшить дизайн кода, написав второй вызов в новом методе и просто вызвав метод.

лучшее решение - использовать RXJAVA, см.

https://medium.com/@adinugroho/chaining-multiple-retrofit-call-using-rxjava-177b64c8103e

https://www.captechconsulting.com/blogs/a-mvp-approach-to-lifecycle-safe-requests-with-retrofit-20-and-rxjava

https://medium.com/@mtrax/rxandroid-2-with-retrofit-2-and-gson-3f08d4c2627d

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...