phpmyadmin - Retrofit2 的响应体在真实设备上为空
问题描述
我在真实设备上遇到了 Retrofit2 的问题,但是它在模拟器上工作,当我使用我的 Samsung J7 2016 或任何其他设备时,响应正文为空,我注意到我的响应代码是 403,使用 phpmyadmin(localhost) 和我的phone 而不是 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 模拟器,请你帮忙!
解决方案
我已经修复了问题,我的解决方案是改变:
# onlineoffline tag - don't remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from ::1
Allow from localhost
至 :
# onlineoffline tag - don't remove
Require local
Require ip 192.168.0
回复在这里:WAMP 无法访问本地网络 403 Forbidden 谢谢大家。
推荐阅读
- python - Python:如何避免调用两个函数的循环?
- ocaml - 如何使用 OCaml 删除非空目录?
- c++ - C ++从指针遍历映射
- python-3.x - 如何在 DataFrame 的时间序列中将月份名称转换为月份编号?
- c++ - 异构初始化列表
- reactjs - 使用 Redux Form 反应选择设置初始值
- apache-flex - 如何从 flex UI 转换为 apache roayle
- boost-asio - 如何从 Boost 1.68 中的链中获取 io_context?
- identityserver4 - 始终在 IdentityServer4 中输入没有“prompt=login”的凭据
- c# - 当我在 C# 中按 Enter 时,Intellisense 没有插入