Retrofit 2 GET / POST не работает для больших данных в Android - PullRequest
0 голосов
/ 11 мая 2018

Я видел другие темы по этой проблеме, но не смог получить правильный ответ.

@POST("task/GetAllTasks")
Call<MyTask> getMyTasks(@Header("Authorization") String token, @Query("EmployeeId") String emp);

Вот как я звоню, сначала я подумал, что это связано с GET ограничением данных запроса, потому что GET накладывает ограничения данных, а затем я изменил запрос с GET на POST, но проблема все еще сохраняется.

ApiUtils.getTaskService().getMyTasks(apiToken, employeeId).enqueue(new Callback<MyTask>() {
@Override
        public void onResponse(Call<MyTask> call, Response<MyTask> response) {
   // ... Successful code goes here
 }

@Override
        public void onFailure(Call<MyTask> call, Throwable t) {
        //.. This block of code executing now :(
  }
 }

Всегда onFailure вызывается. Я протестировал этот же запрос на Почтальоне, и он возвращает данные. Длина содержимого составляет длина содержимого → 45720

Он работает с небольшим объемом данных, так как я тестировал его в базе данных Dev, в которой содержится меньше данных, но в среде Live это постоянно вызывает проблемы.

Пожалуйста, предложите решение или я должен покинуть Retrofit и перейти для этой цели в библиотеку Android?

РЕДАКТИРОВАТЬ: Можем ли мы увеличить время ожидания запроса в Retrofit, если да, то как?

1 Ответ

0 голосов
/ 11 мая 2018

Попробуйте увеличить время ожидания:

OkHttpClient client = new OkHttpClient().newBuilder()
                  .readTimeout(10, TimeUnit.SECONDS)
                  .connectTimeout(10, TimeUnit.SECONDS).build();

И установите его на ваш модернизированный:

new Retrofit.Builder().baseUrl("xxx").client(client).build().create(xxx.class);

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