我想在android中使用retrofit来获取我的mysql数据,但是我得到了一个null异常。我用邮递员测试了我的数据库,一切正常。我见过其他相关的答案,但我的不同。我的代码如下。
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(LikelyProblemsClient.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
LikelyProblemsClient likelyProblemsClient = retrofit.create(LikelyProblemsClient.class);
Call<List<LikelyProblems>> call = likelyProblemsClient.getProblems();
call.enqueue(new Callback<List<LikelyProblems>>() {
@Override
public void onResponse(Call<List<LikelyProblems>> call, Response<List<LikelyProblems>> response) {
List<LikelyProblems> likelyProblems = response.body();
for (LikelyProblems l: likelyProblems){
Log.d("id", l.getId());
Log.d("category", l.getCategory());
Log.d("Problems", l.getProblems());
}
}
@Override
public void onFailure(Call<List<LikelyProblems>> call, Throwable t) {
Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_SHORT);
}
});
我的模特
public class LikelyProblems {
private String id;
private String category;
private String problems;
public LikelyProblems(String id, String category, String problems) {
this.id = id;
this.category = category;
this.problems = problems;
}
public String getId() {
return id;
}
public String getCategory() {
return category;
}
public String getProblems() {
return problems;
}
}
我的界面
public interface LikelyProblemsClient {
String BASE_URL = "http://192.168.1.35:85/tranxavApi/public/api/";
@GET("vehicle-problems")
Call<List<LikelyProblems>> getProblems();
}
请所有答案将不胜感激。感谢
答案 0 :(得分:0)
我已经解决了这个问题。我在laravel后端使用post方法而不是get方法
答案 1 :(得分:0)
我知道您问这个问题已有很长时间了,但这可能会对其他人有所帮助。 每次用户编辑文本时尝试发送请求时,我都面临相同的问题。如果您还发送多个请求,则可能会出现问题,可能是因为在某个时候您的呼叫返回的响应为空。只需检查for循环之前您的response.body是否为空。