You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Volley请求无法正常工作,是否是目标API存在问题?

问题原因及解决方案

核心问题不是目标API存在问题,而是你使用的Volley请求类型与API返回的JSON结构不匹配:

  • 你调用的https://krokapp.by/api/rest/tags/?format=json返回的是JSON数组(格式为[{}, {}, ...])
  • 当前代码中使用的JsonObjectRequest仅能处理JSON对象(格式为{key: value, ...}),因此Volley在解析响应时会失败,触发错误回调

而你测试的天气API返回的是标准JSON对象,所以JsonObjectRequest可以正常工作。

修复代码

将JsonObjectRequest替换为JsonArrayRequest,适配JSON数组类型的响应:

RequestQueue mRequestQueue;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mRequestQueue = Volley.newRequestQueue(this);
    String url = "https://krokapp.by/api/rest/tags/?format=json";

    final JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, url, null, 
        response -> {
            Log.d("krok_data", response.toString());
        }, 
        error -> {
            Log.d("krok_data", "Error");
            error.printStackTrace();
        });
    mRequestQueue.add(request);
}

额外提示

调试此类问题时,可先手动访问API地址查看返回的JSON格式,确认是数组还是对象,再选择对应的Volley请求类型:

  • JsonArrayRequest:处理JSON数组响应
  • JsonObjectRequest:处理JSON对象响应

内容的提问来源于stack exchange,提问作者kirvel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 11:25:34