Многократный пост-запрос с другим параметром Retrofit - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть что-то подобное в интерфейсе

    @POST("login")
    Call<LoginResponse> Login(@Query("email") String email, 
                              @Query("password") String password);

Я хочу, чтобы имя первого параметра стало email или user_name в зависимости от того, введено в editText электронная почта илиusername Как мне этого добиться

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Вы можете использовать @QueryMap для этой цели

@POST("login")
Call<LoginResponse> Login(@QueryMap Map<String, String> options);

И используйте это так

Map<String, String> data = new HashMap<>();
data.put("email", "mail@example.com"); //change email to user_name when you need
data.put("password", "secret");

...
...

loginService.Login(data);
0 голосов
/ 25 апреля 2018

Почему бы не создать отдельную службу / функцию, если они вводят имя пользователя?Т.е.

@POST("login")
Call<LoginResponse> LoginByUsername(@Query("user_name") String userName, 
                          @Query("password") String password);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...