我正在用Kotlin做一个Android应用程序。我做了一个。NET Web Api,我从Kotlin连接到它。
我的问题是,当我向我的Web API发送请求时,我会得到一个异常“Cleartext HTTP traffic to localhost不允许”。
const val URL = "http://localhost:24517/bar?"
const val USERNAME = "username=";
const val PASSWORD = "password=";
class BarRepo : IRepoBar{
override fun getBarByUser(userName: String, password: String): Bar {
val url = "$URL$USERNAME$userName&$PASSWORD$password"
val apiResponse = URL(url).readText()
val obj = Json.decodeFromString<Bar>(apiResponse)
return obj
}
}
原来我必须把我的本地ip地址来访问它。
我正在使用Volley对本地主机上的地址进行GET请求,但由于以下错误而失败: 我在这里遵循了指南:Android 8:不允许明文HTTP流量,并做了以下操作: 已创建网络安全xml文件: 将其添加到我的清单中,并允许明文通信: 我还是会犯同样的错误。从“http”更改为“https”会出现以下错误: 我在MainActivity中的代码: 接下来我能做什么?
我的程序从用户那里获取一个URL,所以它可以对互联网上的任何网站提出请求。我试图使这成为可能,我查找了所有关于“Android HTTP Cleartext”错误的答案,并做出了这一点,但它仍然不允许我连接我的测试本地PHP服务器,我在这里遗漏了什么? 我的安全配置:
对于模拟器,我使用Genymotion模拟器(它使用VirtualBox)。 下面是使用的按钮的代码。我已经检查了所有的东西,但仍然一无所获。
“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