Android Studio中Volley的JsonObjectRequest无法获取数据求助
问题排查与修复
代码中的明显错误
你的URL参数拼接格式有误,GET请求的参数应该是?key=value的形式,但你缺少了参数值前的等号,导致PHP端无法正确接收id参数:
// 错误写法 String url="http://192.165.0.196/android_msyql/consultar.php?id"+get_id; // 修正后写法 String url="http://192.165.0.196/android_msyql/consultar.php?id="+get_id;
其他排查方向
- 检查网络权限:确保
AndroidManifest.xml中已添加网络权限<uses-permission android:name="android.permission.INTERNET" /> - 确认请求队列初始化:检查
requestQueue是否在Activity初始化阶段正确创建,示例:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); requestQueue = Volley.newRequestQueue(this); } - 打印完整错误日志:当前错误回调仅弹出Toast,无法定位具体问题,修改为输出详细错误信息:
@Override public void onErrorResponse(VolleyError error) { Log.e("VolleyError", "请求失败详情:", error); Toast.makeText(MainActivity2.this, "请求失败:" + error.getMessage(), Toast.LENGTH_SHORT).show(); } - 验证PHP接口返回格式:确保
consultar.php返回标准的JSONObject格式,示例正确返回:
如果接口返回的是JSON数组(如{"name":"测试名称","email":"test@example.com"}[{"name":"测试名称"}]),需改用JsonArrayRequest替代JsonObjectRequest - 测试接口可用性:在手机浏览器中直接访问拼接后的完整URL,确认是否能返回预期的JSON数据,排除服务器或网络连通问题
- 添加空值校验:获取
get_id后先判断是否为空,避免生成无效URL:String get_id= ID.getText().toString().trim(); if(get_id.isEmpty()){ Toast.makeText(this, "ID不能为空", Toast.LENGTH_SHORT).show(); return; }
内容的提问来源于stack exchange,提问作者Francisco Cruz
相关产品推荐
相关产品推荐

