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

非Android/Java开发者求助:Volley请求报错E/Volley:[300]BasicNetwork.performRequest

解决Volley请求错误「E / Volley: [300] BasicNetwork.performRequest」

作为非Android/Java开发者,碰到Volley这个模模糊糊的[300]错误确实挺挠头的——其实这个错误对应的是Volley里的AuthFailureError(认证失败错误),大概率和请求的身份验证、参数配置或者服务器权限有关。结合你给出的登录请求代码,我整理了几个你能快速上手的排查和修复步骤:

  • 第一步:检查请求是否携带了必要的参数/请求头
    登录接口一般需要用户名、密码这类核心参数,你得确认代码里有没有把这些参数正确封装到请求中。如果是POST请求,参考下面的示例补充参数:

    StringRequest loginRequest = new StringRequest(Request.Method.POST, URL,
        responseListener, errorListener) {
        // 重写方法添加POST参数
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String, String> params = new HashMap<>();
            params.put("username", "用户输入的账号"); // 替换成实际输入的账号
            params.put("password", "用户输入的密码"); // 替换成实际输入的密码
            return params;
        }
        // 有些接口需要特定请求头,比如Content-Type
        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            Map<String, String> headers = new HashMap<>();
            headers.put("Content-Type", "application/x-www-form-urlencoded");
            return headers;
        }
    };
    
  • 第二步:确认URL有效性和App网络权限
    先手动验证登录接口地址http://someURL/api/crm/check_login是否能正常访问——用Postman模拟请求,或者浏览器直接访问(GET接口可用)。另外注意:

    • Android 9及以上默认禁止明文HTTP请求,需要在AndroidManifest.xml的<application>标签里添加配置:
      android:usesCleartextTraffic="true"
      
    • 确保App已经申请了网络权限,在AndroidManifest.xml顶部添加:
      <uses-permission android:name="android.permission.INTERNET" />
      
  • 第三步:捕获更详细的错误信息
    Volley默认的日志太简略,你可以给请求绑定一个错误监听器,打印具体的错误细节,方便定位问题:

    Response.ErrorListener errorListener = new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            // 分类打印错误
            if (error instanceof AuthFailureError) {
                Log.e("LoginDebug", "认证失败:" + error.getMessage());
            } else if (error instanceof NetworkError) {
                Log.e("LoginDebug", "网络连接失败:" + error.getMessage());
            } else {
                Log.e("LoginDebug", "未知错误:" + error.getMessage());
                // 打印完整堆栈信息,方便排查深层问题
                error.printStackTrace();
            }
        }
    };
    

    把这个监听器绑定到你的登录请求里,就能在Logcat里看到具体的失败原因了。

  • 第四步:核对服务器端的接口要求
    如果上面的步骤都没问题,那可能是服务器端的规则不匹配——比如接口要求的参数名和你传的不一致,或者服务器开启了IP白名单、需要特定前置token。可以查看开源项目的接口文档,或者联系项目维护者确认登录接口的具体要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:40:03