Тело ответа всегда нулевое в Android от API-интерфейса retrofit2 - PullRequest
0 голосов
/ 01 мая 2019

Я разрабатываю приложение для Android с Android Studio, и у меня есть API для отдыха, который я разработал с весны. И каждый раз, когда я использую модификацию для извлечения чего-либо с сервера, я получаю нулевое тело. Даже если мой сервер отправляет данные.

Я пробовал ScalarsConverterFactory и GsonConverterFactory, я также пытался изменить тип моего Call to String, ResponseBody и JsonObject

здесь я звоню:

Retrofit retrofit = new Retrofit.Builder()
                .addConverterFactory(GsonConverterFactory.create())
                .baseUrl("my_url")
                .build();

ServerService service = retrofit.create(ServerService.class);
Call<List<String>> call = service.getUserAlbums("addcookie");
Response<List<String>> response = call.execute();

ServerService.java

@GET("/cmu/getUserAlbums")
Call<List<String>> getUserAlbums(@Header("Cookie") String cookie);

Вот код на сервере

@RequestMapping(value = "/getUserAlbums", method = RequestMethod.GET)
    @ResponseStatus(HttpStatus.FOUND)
    public List<String> getUserAlbums() {
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        User user = userService.getUserByUsername(auth.getName());
        return userService.getUserByUsername(user.getUsername()).getAlbums();

    }

Я ожидал получить список в виде строки, я получил HTTP-код 302, и в своей консоли я вижу, что сервер возвращает список, но я не могу получить на Android.

1 Ответ

1 голос
/ 03 мая 2019

Я исправил проблему, в основном модификация считает ответ успешным, если код находится между 200 - 299, поэтому, так как он возвращал 302, тело ответа, которое я искал, находилось в .errorBody ().

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