Методы модифицированного сервиса не могут вернуть void - PullRequest
0 голосов
/ 27 марта 2020

У меня есть метод ниже в моем интерфейсе Api. Я пытаюсь разместить и вернуть данные с той же страницы

   public interface ApiInterface {

   @FormUrlEncoded // annotation used in POST type requests

   @POST("/pagee1.php")     // API's endpoints

   public void registration(@Field("param1") String param1,
                         @Field("param2") String param2,
                         @Field("param3") String param3,
                         @Field("param4") String param4,
                         @Field("param5") String param5,
                         Callback<UserListResponse> callback);

@GET("/pagee1.php")
public void getUsersList
Callback<List<UserListResponse>> callback);

}

И это мой метод post_Data, использующий регистрацию ApiInterface выше

 private void Post_Data() {

    Api.getClient().registration("value1", "value2", "value3", "value4", "value5", new Callback<UserListResponse>() {
        @Override
        public void onResponse(Call<UserListResponse> call, retrofit2.Response<UserListResponse> response) {
            progressDialog.dismiss(); //dismiss progress dialog
            getUserListData();
        }

        @Override
        public void onFailure(Call<UserListResponse> call, Throwable t) {
            Toast.makeText(getContext(), t.toString(), Toast.LENGTH_LONG).show();
            Log.e("Retrofit_callback Error", t.toString());

        }
    });

}

Но выдает ошибку на позиции Api.getClient().registration и ниже код ошибки

java.lang.IllegalArgumentException: Service methods cannot return void.
    for method ApiInterface.getUsersList

что не так я делаю

1 Ответ

1 голос
/ 27 марта 2020

Вам нужно перейти на это:

public interface ApiInterface {

    @FormUrlEncoded // annotation used in POST type requests
    @POST("/pagee1.php")     // API's endpoints
    public Call<UserListResponse> registration(@Field("param1") String param1,
                         @Field("param2") String param2,
                             @Field("param3") String param3,
                             @Field("param4") String param4,
                             @Field("param5") String param5);

    @GET("/pagee1.php")
    public Call<List<UserListResponse>> getUsersList();

}

Ваши звонки возвращают что-то, что Call<YourEntity>. Посмотрите этот учебник для лучшего понимания Retrofit.

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