Android Volley连接Hostinger远程数据库遇AuthFailureError求助
解决Android Volley连接Hostinger数据库403 AuthFailureError问题
关键排查与修复步骤
1. 修正PHP文件的访问URL
Hostinger的public_html是网站根目录,对外访问时不需要在URL中包含public_html。正确的URL格式应为https://你的域名/databaseconnect.php,比如你的域名是example.com,则直接用https://example.com/databaseconnect.php——带public_html的路径是服务器内部目录结构,对外访问会被判定为无效路径,触发403拦截。
2. 检查文件与目录权限
- 确保
public_html目录权限设为755,databaseconnect.php文件权限设为644。权限过高或过低都会被服务器拦截,导致403。 - 在Hostinger文件管理器中右键目标文件/目录,选择「更改权限」即可调整。
3. 先验证PHP文件的可用性
- 直接在浏览器中访问修正后的PHP URL,测试是否能正常返回内容(可以先在PHP文件开头加
echo "test";快速验证)。如果浏览器访问也出403,说明问题在服务器配置/文件权限,和Android代码无关。 - 若浏览器访问正常,再确认PHP的请求处理逻辑和Volley请求匹配:比如PHP处理POST请求,Volley就要用
Method.POST,且参数传递正确。
4. 关闭Hostinger的安全拦截机制
Hostinger默认开启的ModSecurity或Hotlink Protection可能会拦截非浏览器发起的请求(比如Volley的HTTP请求):
- 登录Hostinger cPanel,找到「ModSecurity」选项,临时关闭后测试。
- 或在「Hotlink Protection」中添加APP请求来源,暂时关闭该功能排查。
5. 给Volley请求添加合法Header
部分服务器会验证User-Agent字段,可在Volley的StringRequest中重写getHeaders()方法,添加浏览器风格的User-Agent:
@Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headers = new HashMap<>(); headers.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"); return headers; }
6. 确认PHP数据库连接代码正确性
- 确保PHP中使用的数据库主机地址(通常是
localhost或Hostinger提供的专属地址)、用户名、密码、数据库名无拼写错误。 - 可在PHP文件开头添加错误捕获代码,排查连接问题:
<?php error_reporting(E_ALL); ini_set('display_errors', 1); // 你的数据库连接与插入代码 ?>
访问PHP文件查看是否有数据库连接报错——若为数据库问题,会返回具体错误信息,而非403。
验证流程
- 浏览器访问修正后的PHP URL,确认无403。
- 用HTML表单提交数据到PHP文件,验证插入逻辑是否正常。
- 调整Volley请求参数、Header后重新测试。
内容的提问来源于stack exchange,提问作者SCT
相关产品推荐
相关产品推荐

