Java 改装2 GET请求响应方法中出现空指针异常
我使用改型2来查询TMDB api。在call.enqueue方法中,我正在执行Java 改装2 GET请求响应方法中出现空指针异常,java,android,nullpointerexception,retrofit2,Java,Android,Nullpointerexception,Retrofit2,我使用改型2来查询TMDB api。在call.enqueue方法中,我正在执行 List<Movie> movies = response.body.getMovies(); 下面是我从片段中调用的enqueue方法 ApiInterface service = ApiClient.getClient().create(ApiInterface.class); Call<MainMovieNowPlayingResponse> call = service.g
List<Movie> movies = response.body.getMovies();
下面是我从片段中调用的enqueue方法
ApiInterface service = ApiClient.getClient().create(ApiInterface.class);
Call<MainMovieNowPlayingResponse> call = service.getNowPlayingMovies(1,API_KEY);
call.enqueue(new Callback<MainMovieNowPlayingResponse>() {
@Override
public void onResponse(Call<MainMovieNowPlayingResponse> call, Response<MainMovieNowPlayingResponse> response) {
if (response.code() == 200 && response.isSuccessful()){
movies = response.body().getResults();
}
}
@Override
public void onFailure(Call<MainMovieNowPlayingResponse> call,
Throwable t) {
}
});
apinterface service=ApiClient.getClient().create(apinterface.class);
Call Call=service.getNowPlayingMovies(1,API_键);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.code()==200&&response.issusccessful()){
movies=response.body().getResults();
}
}
@凌驾
公共失效失效失效(调用,
可丢弃的(t){
}
});
我从一个片段的onCreateView方法调用它,该片段是选项卡视图的一部分
我得到的错误是response.body.getMovies()
调用中的空指针异常。
我的错在哪里
附言:我故意不放模型,因为它们太长了,我不想这个问题太长。我对模型进行了三次检查,所有模型都是正确的。所有变量都是带有公共getter和setter的私有变量
在你们否决这一点之前,因为这是关于空指针的另一个问题,我知道空指针异常是什么。我就是找不到这段代码中的错误
我的错在哪里?我把它修好了。我的基本url和Api端点有问题。
基本url必须以/结尾,但我以/开始我的端点。您是否在postman或其他rest客户端中检查过url为什么要编写
movies=response.body().getResults()代码>而不是movies=response.body().getMovies()代码>在您的响应代码中尝试调试并检查response.body()的值,如果为null,则检查response.errorBody()的输出…您可能能够修复它。是的,我尝试了所有方法。我试着记录、调试、删除与api调用相关的所有代码并再次编写它。什么都不管用
public class ApiClient {
private static Retrofit retrofit = null;
public static Retrofit getClient(){
if (retrofit == null){
retrofit = new Retrofit.Builder()
.baseUrl("https://api.themoviedb.org/3")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}}
ApiInterface service = ApiClient.getClient().create(ApiInterface.class);
Call<MainMovieNowPlayingResponse> call = service.getNowPlayingMovies(1,API_KEY);
call.enqueue(new Callback<MainMovieNowPlayingResponse>() {
@Override
public void onResponse(Call<MainMovieNowPlayingResponse> call, Response<MainMovieNowPlayingResponse> response) {
if (response.code() == 200 && response.isSuccessful()){
movies = response.body().getResults();
}
}
@Override
public void onFailure(Call<MainMovieNowPlayingResponse> call,
Throwable t) {
}
});