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

点击Tambah data/add data闪退,遇403错误及NetworkUtility异常求助

问题排查与解决方案

核心错误分析

NetworkUtility.shouldRetryException: Unexpected response code 403 表示服务器理解请求但拒绝执行,并非单纯的IP/URL配置错误,结合你提供的代码,从以下几个维度排查:


一、修复koneksi.php的致命问题

你提供的koneksi.php是空HTML文件,完全没有MySQL连接逻辑,这会导致服务器返回异常(甚至触发403),同时所有依赖它的接口都会失效。替换为标准的数据库连接代码:

<?php
// 数据库基础配置
$host = 'localhost'; // 本地数据库用localhost,远程服务器填对应IP
$db_user = '你的数据库用户名';
$db_pass = '你的数据库密码';
$db_name = '你的目标数据库名';

// 创建数据库连接
$conn = mysqli_connect($host, $db_user, $db_pass, $db_name);

// 校验连接状态
if (!$conn) {
    die("数据库连接失败: " . mysqli_connect_error());
}
// 设置字符编码避免乱码
mysqli_set_charset($conn, "utf8");
?>

注意:删除原文件中所有HTML标签,仅保留PHP代码,否则接口返回HTML而非纯数据,会导致客户端解析崩溃。


二、排查403错误的常见诱因

  1. 文件/目录权限异常
    • 检查服务器上folder_kerja目录和koneksi.php文件的权限:目录设为755,文件设为644,确保Web服务器(Apache/Nginx)有读取权限。
  2. 服务器安全规则限制
    • 若用Apache,检查.htaccess文件是否有禁止访问的规则;若用Nginx,查看配置文件中的allow/deny条目,确认允许客户端IP访问。
  3. 请求方式不匹配
    • 确认EntriAlumniActivity中提交数据的请求方式(POST/GET)与后端接口一致,若后端仅接受POST,客户端用GET会触发权限拒绝。

三、优化Kotlin代码中的潜在问题

  1. 修复IP扫描逻辑
    • onStart中循环发送256个请求会触发服务器频率限制,导致403,建议改为手动配置正确的服务器IP,而非自动扫描。
    • 全局变量ip未声明,需在类中添加:private var ip = "10.0.2.2"
  2. 添加Volley错误监听
    • 现有请求未处理错误回调,无法捕获崩溃细节,补充错误监听:
    sr = StringRequest(Request.Method.GET, url,
        { /* 成功回调逻辑 */ },
        { error ->
            Toast.makeText(this@MainActivity, "请求失败: ${error.message}", Toast.LENGTH_SHORT).show()
        }
    )
    

四、定位闪退的直接原因

点击按钮闪退的核心发生在EntriAlumniActivity中,需补充排查:

  1. 查看EntriAlumniActivity的网络请求代码,确认是否调用了koneksi.php或其他接口,检查URL、请求参数是否正确。
  2. 在Logcat中提取完整的崩溃栈跟踪(不止403错误),NullPointerException或类型转换异常才是闪退的直接诱因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:45:22