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

不允许向192.168.1.2发送明文HTTP流量,Android Studio报错如何解决?

解决Android P及以上版本禁止明文HTTP流量的问题

我想要向WampServer发送请求,但Android Studio停止执行并提示“不允许向192.168.1.2发送明文HTTP流量”的错误。我刚将Android Studio更新至最新版本(P),之前该操作可正常运行无异常,请问问题出在哪里?该如何解决?

用户提供的代码片段:

String login_url = "http://192.168.1.2/login.php"; 
URL url = new URL(login_url"); // 注意:这里存在语法错误,多了一个闭合双引号
HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); 
httpURLConnection.setRequestMethod("POST"); 
httpURLConnection.setDoOutput(true); 
httpURLConnection.setDoInput(true); 
OutputStream outputStream = httpURLConnection.getOutputStream(); 
.... 

嘿,这个问题我太熟了——你升级到Android P(API 28)后遇到的是Google在高版本系统里新增的明文流量强制限制,这是为了提升APP整体安全性做的改动,之前的Android版本没有这个强制约束,所以你的代码之前能正常运行,现在就被拦截了。

问题根源

Android P及更高版本的系统,默认会阻止APP发起明文HTTP请求,只允许HTTPS协议的通信。你的WampServer用的是HTTP明文协议,所以系统直接拦截了这个请求,抛出了你看到的错误提示。

另外先提个小细节:你代码里的URL url = new URL(login_url");多了一个闭合双引号,这会导致语法错误,记得改成URL url = new URL(login_url);,不然即使解决了流量限制问题,代码也跑不起来哦。

三种解决办法(按推荐程度排序)

1. 允许特定域名的明文流量(推荐,安全)

这种方式只会放开你需要的WampServer地址,不会全局降低APP的安全性,是最优解:

  • 第一步:在项目的res/xml目录下(没有xml文件夹就新建一个),创建network_security_config.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <!-- 指定允许明文流量的域名,这里填你的WampServer地址 -->
        <domain includeSubdomains="true">192.168.1.2</domain>
    </domain-config>
</network-security-config>
  • 第二步:打开AndroidManifest.xml,在<application>标签中添加配置引用:
<application
    ...
    android:networkSecurityConfig="@xml/network_security_config"
    ...>
    <!-- 其他组件配置 -->
</application>

2. 全局允许明文流量(仅临时测试用,不推荐)

如果只是临时调试,不想折腾配置,可以直接在AndroidManifest.xml的<application>标签里加一行属性:

<application
    ...
    android:usesCleartextTraffic="true"
    ...>
    <!-- 其他组件配置 -->
</application>

⚠️ 注意:这种方式会让APP所有HTTP请求都被允许,上线时绝对不能用,会带来严重的安全隐患。

3. 给WampServer配置HTTPS(最彻底的安全方案)

如果你的APP打算正式上线,或者想长期保持通信安全,最好的办法是给WampServer配置HTTPS证书:

  • 可以生成自签名证书用于测试,或者申请免费的Let's Encrypt证书用于生产环境
  • 在WampServer的Apache配置中开启HTTPS服务,绑定生成的证书
  • 之后把请求地址改成https://192.168.1.2/login.php,就不会再被系统拦截了

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:43:42