java.io.IOException: Cleartext HTTP traffic to myserver.com not permitted
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">myserver.com</domain>
</domain-config>
</network-security-config>
Error:(35) No resource identifier found for attribute 'networkSecurityConfig' in package 'android'
在Android N Developer Preview 4中存在一个已知的问题,如果应用程序修改了其applicationinfo.flags
,则会触发阻止该应用程序的明文通信,即使该应用程序没有请求阻止明文通信。修补程序在下一个开发人员预览中。因此,这与您的网络安全配置无关。实际上,看起来您甚至不需要声明自定义的网络安全配置。
如果你迫不及待地等到下一个Android N开发人员预览,检查一下你的应用程序中修改自己的applicationinfo.flags
的地方。通常采用getapplicationinfo().flags&=applicationinfo.flag_debuggable
或getapplicationinfo().flags=applicationinfo.flag_debuggable
的形式。解决这些用法的方法是(getApplicationInfo().flags&ApplicationInfo.flag_debuggable)
。
或者,作为一种解决办法,在应用程序生命周期的早期调用NetworkSecurityPolicy.isClearTextTrafficPermited()
。如果在篡改applicationinfo.flags
的代码之前调用此解决办法,则该解决办法应该有效。
我的程序从用户那里获取一个URL,所以它可以对互联网上的任何网站提出请求。我试图使这成为可能,我查找了所有关于“Android HTTP Cleartext”错误的答案,并做出了这一点,但它仍然不允许我连接我的测试本地PHP服务器,我在这里遗漏了什么? 我的安全配置:
对于模拟器,我使用Genymotion模拟器(它使用VirtualBox)。 下面是使用的按钮的代码。我已经检查了所有的东西,但仍然一无所获。
我正在用Kotlin做一个Android应用程序。我做了一个。NET Web Api,我从Kotlin连接到它。 我的问题是,当我向我的Web API发送请求时,我会得到一个异常“Cleartext HTTP traffic to localhost不允许”。
“OriginalStack”:“错误:java.io.ioException:不允许到本地主机的明文HTTP通信\n位于新区域AwareError(文件:///data/data/org.nativescript.preview/files/app/Tns_modules/@nativescript/Angular/zone-js/dist/zone-nativescript.js:1298:3