【发布时间】:2018-10-09 20:04:32
【问题描述】:
我在真实设备上遇到了 Retrofit2 的问题,但它在模拟器上工作, 当我使用三星 J7 2016 或任何其他设备时,响应正文为空,我注意到我的响应代码是 403,使用 phpmyadmin(localhost) 和我的手机而不是 200 和模拟器。
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(1, TimeUnit.MINUTES)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(15, TimeUnit.SECONDS)
.build();
Retrofit adapter = new Retrofit.Builder()
.baseUrl(ROOT_URL)
.client(okHttpClient)
.addConverterFactory(GsonConverterFactory.create())
.build();
MyService myService = adapter.create(MyService.class);
retrofit2.Call<Result> call = myService.connectUser(email,password);
call.enqueue(new retrofit2.Callback<Result>() {
@Override
public void onResponse(retrofit2.Call<Result> call, retrofit2.Response<Result> response) {
ArrayList<HashMap<String,String>> results = response.body().getData();
.
.
.
}
@Override
public void onFailure(retrofit2.Call<Result> call, Throwable t) {
showMessage("ERROOR "+ t.getMessage());
finish();
}
它返回:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.example.jamal.mysqlretrofit.results.Result.getData()' on a null object reference
但它可以在 genymotion 模拟器中运行,请您帮忙!
【问题讨论】:
标签: phpmyadmin retrofit2