不允许使用明文HTTP流量到192.168.1.2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不允许使用明文HTTP流量到192.168.1.2相关的知识,希望对你有一定的参考价值。

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();
....

我想向wampserver发送请求,但android Studio会在标题上停止执行该消息。怎么了?我刚刚将Android Studio更新到最新版本(P)。这不是错误,我可以正常工作......我该如何解决这个问题?

答案

根据Network security configuration -

从Android 9.0(API级别28)开始,默认情况下禁用明文支持。

还看看 - https://koz.io/android-m-and-the-war-on-cleartext-traffic/

选项1 -

创建文件res / xml / network_security_config.xml -

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">Your URL(ex: 127.0.0.1)</domain>
    </domain-config>
</network-security-config>

AndroidManifest.xml -

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:networkSecurityConfig="@xml/network_security_config"
        ...>
        ...
    </application>
</manifest>

选项2 -

AndroidManifest.xml -

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:usesCleartextTraffic="true"
        ...>
        ...
    </application>
</manifest>

同样,@david.s' answer指出android:targetSandboxVersion也可能是一个问题 -

根据Manifest Docs -

android:targetSandboxVersion

此应用程序要使用的目标沙箱。沙箱版本号越高,安全级别越高。其默认值为1;您也可以将其设置为2.将此属性设置为2会将应用程序切换到另一个SELinux沙箱。以下限制适用于2级沙箱:

  • 网络安全配置中的usesCleartextTraffic的默认值为false。
  • 不允许共享Uid。

选项3 -

如果你在android:targetSandboxVersion<manifest>然后把它减少到1

AndroidManifest.xml -

<?xml version="1.0" encoding="utf-8"?>
<manifest android:targetSandboxVersion="1">
    <uses-permission android:name="android.permission.INTERNET" />
    ...
</manifest>

以上是关于不允许使用明文HTTP流量到192.168.1.2的主要内容,如果未能解决你的问题,请参考以下文章

如何在 xamarin android 中修复“不允许到 x 的明文 HTTP 流量”

Android N 预览版中不允许到 myserver.com 的明文 HTTP 流量

如何解决 Android P DownloadManager 因“不允许到 127.0.0.1 的明文 HTTP 流量”而停止?

尽管添加了 android:usesCleartextTraffic 和 android:networkSecurityConfig,但不允许明文 HTTP 流量

ssh设置

Google Play 发布前报告安全漏洞,表明所有域都允许明文流量