2015-11-13 2 views
0

Итак, я работаю над Android-приложением, и я решил использовать Retrofit 2.0 для всех своих HTTP-запросов для различных API-интерфейсов, которые мне нужны. Я столкнулся с проблемой, которую я не смог отладить, а именно, когда я отправляю запрос на получение информации об изображении с помощью идентификатора изображения, я просто получаю ответ 200 с ссылкой, в которой я отправил свой запрос GET. Используя Postman, я получаю ответ, который я ищу (это модель данных Imgur image JSON: https://api.imgur.com/models/image), но я не могу заставить ее работать с Retrofit.Imgur не возвращается Модель данных изображения с использованием Retrofit 2.0

Ниже я добавил класс обслуживания и запрос + ответ. Любая информация или мозговая атака очень ценятся :)

интерфейса:

public interface ImgurService 
{ 
    @GET("Image/{id}") 
    Call<ImgurResponse> getImageInfo(@Path("id") String id); 
} 

класса обслуживания экземпляр:

public static ImgurService getInstance() 
{ 
    if (IMGUR_SERVICE == null) { 

     Interceptor interceptor = new Interceptor() 
     { 
      @Override 
      public Response intercept(Chain chain) throws IOException 
      { 
       Request newRequest = chain.request().newBuilder().addHeader("Authorization", CLIENT_ID).build(); 
       return chain.proceed(newRequest); 
      } 
     }; 

     OkHttpClient client = new OkHttpClient(); 
     client.interceptors().add(interceptor); 

     Retrofit RETROFIT = new Retrofit.Builder() 
       .baseUrl(BASE_URL) 
       .client(client) 
       .addConverterFactory(GsonConverterFactory.create()) 
       .build(); 

     IMGUR_SERVICE = RETROFIT.create(ImgurService.class); 
    } 

    return IMGUR_SERVICE; 
} 

Запрос:

Request{method=GET, url=https://api.imgur.com/3/Image/CgZzfSd, tag=Request{method=GET, url=https://api.imgur.com/3/Image/CgZzfSd, tag=null}} 

Необработанного ответ :

Response{protocol=http/1.1, code=200, message=OK, url=https://api.imgur.com/3/Image/CgZzfSd} 
+0

Как выглядит код, который выполняет запрос и печатает его? http://stackoverflow.com/questions/22325641/retrofit-callback-get-response-body предполагает, что печать 'Response' может опустить тело ответа, если вы не установите режим отладки – zapl

+0

@zapl Этот запрос и ответ прямо из Android Студийный отладчик. – LeteciTanjir

ответ

0

Мне удалось выяснить мою проблему; отсутствие сна. ImgurResponse, который я использую для де-сериализации JSON, который я получил от API Imgur, был неправильным. Ответ, который я возвращаю, содержит success, status и data с data, содержащий информацию, которую я искал. Не осознал свою ошибку из-за «сырой реакции» от отладчика, не содержащей фактического ответа от API.

Смежные вопросы