相关疑难解决方法(0)

Retrofit 2.0如何获得反序列化的错误响应.body

我正在使用Retrofit 2.0.0-beta1.

在测试中,我有一个替代方案,并期望错误HTTP 400

我想要retrofit.Response<MyError> response 但是response.body() == null

MyError没有反序列化 - 我只在这里看到它

response.errorBody().string()
Run Code Online (Sandbox Code Playgroud)

但它没有给我MyError作为对象

java retrofit retrofit2

103
推荐指数
15
解决办法
10万
查看次数

在Retrofit中使用Call Enqueue功能

我正在使用Retrofit-2.0.0我的应用程序.现在我在网上发现的每一个关于Retrofit的教程都是基于早期的Retrofit,那里没有Call<T>接口.这是我第一次使用Retrofit而且我一再得到null object reference.这是我的网络模型界面

public interface TMovieDBService {
    @GET("/movie")
    Call<MovieResponse> getMovieResponse(@Query("sort_by") String sortKey,
                             @Query("api_key") String apiKey);
}
Run Code Online (Sandbox Code Playgroud)

这是我updateMovies()更新电影列表的功能.

void updateMovies() {
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://api.themoviedb.org/3/discover")
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    String sortKey = "popularity.desc";
    TMovieDBService service = retrofit.create(TMovieDBService.class);

    Call<MovieResponse> call = service.getMovieResponse(sortKey, ApiKey.API_KEY);

    call.enqueue(new Callback<MovieResponse>() {
        @Override
        public void onResponse(Response<MovieResponse> response) {
            Log.d(LOG_TAG, "Reached this place");
            if (!response.isSuccess()) {
                Log.d(LOG_TAG, "No Success");
            }
            mMovieList = response.body().getMovies();  // <- response is null here …
Run Code Online (Sandbox Code Playgroud)

android retrofit

17
推荐指数
2
解决办法
4万
查看次数

标签 统计

retrofit ×2

android ×1

java ×1

retrofit2 ×1