2016-06-27 9 views
2
Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.Q_BASE) 
      .addConverterFactory(GsonConverterFactory.create()).client(client).build(); 
    Api.ApiInter inter = retrofit.create(Api.ApiInter.class); 
    Call<JSONObject> call = inter.getMovieData(sortType[0], Api.P_KEY); 
    call.enqueue(new Callback<JSONObject>() { 
     @Override 
     public void onResponse(Call<JSONObject> call, Response<JSONObject> response) { 
      /* */ 
     } 

     @Override 
     public void onFailure(Call<JSONObject> call, Throwable t) { 
      Log.d(LOG_TAG, "failed to get response."); 
     } 
    }); 

/retrofit2. тело ответа является нулевым

public class Api { 
    public static final String Q_BASE = "http://api.themoviedb.org/"; 
    public static final String Q_KEY = "api_key"; 
    public static final String Q_RESULT = "results"; 
    public static final String Q_POSTER_PATH = "poster_path"; 
    public static final String Q_TITLE = "title"; 
    public static final String Q_OVERVIEW = "overview"; 
    public static final String Q_DATE = "release_date"; 
    public static final String Q_VOTE_AVERAGE = "vote_average"; 
    public static final String P_KEY = "This is private key"; 
    public static final String REQUEST = "GET"; 

    public static final String I_BASE = "http://image.tmdb.org/"; 
    public static final String P_POSTER_SIZE = "w185"; 

    public interface ApiInter { 
     @GET("3/movie/{sort}") 
     Call<JSONObject> getMovieData(@Path("sort") String sort, @Query("api_key") String key); 

     @GET("t/p/{size}/{url}") 
     Call<Bitmap> getMoviePoster(@Path("size") String size, @Path("url") String url); 
    } 
} 

[Debugger]

Когда я отлажена мое приложение, response.body() всегда retruned только "{}". И если я изменил элемент вызова, возвращаемые значения будут равны нулю. Я не знаю причины. Я хочу получить данные JSON. Как я это исправим? Могу ли я установить okhttp-клиент? или изменить тип возврата вызова? Пожалуйста, дайте мне ответ.

+0

Похоже, у вас нет данных в backbend –

ответ

5

Это очень простая ошибка. Если у вас есть такая проблема, как я, проверьте это на 3 вещи.

  1. Ваш модифицированный преобразователь - Gson.
  2. Ваш метод интерфейса API возвращает Call<JSONObjcet>

  3. запрос успешен, но response.body() просто "{}"

дооборудования использует GsonConverter. Поэтому нам нужно использовать jsonObject в пакете com.google.gson. Вы должны изменить JSONObject к JsonObject

+0

Спасибо alot.Resolved моя проблема –

+0

большое вам спасибо – gautam

0

Код ответа 200 на изображении, что означает, что запрос был успешным. Поэтому сервер возвращает {}. Возможно, нет данных, связанных с sortType, которые вы передаете как параметр.

+0

я проверить URL запроса, но это не так. Я думаю, что дело не в том или ином. –

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