Android应用程序与本地apache服务器的通信



我是Android开发人员的新手,几天来我已经开始使用Kotlin的Android Studio了。我今天遇到了一个问题:我的应用程序如何与本地服务器(XAMPP:Apache和MYSQL(通信我正在运行Windows10,并使用我真正的物理手机而不是模拟器(API 30(,因为模拟器对我来说工作很慢

我有一个简单的php应用程序,它只返回";嗨";,我尝试了很多方法来使用AJAX请求,但最接近使用的是Android Volley,这是我的代码:

val queue = Volley.newRequestQueue(this)
val url = "http://mohe.pagekite.me"
lateinit var qq : String
val stringRequest = StringRequest(
Request.Method.GET, url,
{ response ->
qq = "Response is: ${response.substring(0, 500)}"
val toast = Toast.makeText(applicationContext, qq, Toast.LENGTH_LONG)
toast.show()
},
{ error-> qq = error.toString()
val toast = Toast.makeText(applicationContext, qq, Toast.LENGTH_LONG)
toast.show()
})
queue.add(stringRequest)

一开始我使用我的IP,因为我们连接到同一个wifi(热点(,而且我实际上可以在手机浏览器中打开本地主机,但它在代码中不起作用。(我有一个错误:java.net.MalformedURLException: no protocol(,我环顾四周,发现Volley不支持IP地址,所以我使用PAGEKITE使我的本地主机可以通过可读链接访问互联网,但现在我收到了这个错误:cleartext http traffic to not permitted

我将这个android:usesCleartextTraffic="true"添加到我的manifest.xml中,并创建了network_security_config.xml:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<base-config cleartextTrafficPermitted="true"/>
<domain includeSubdomains="true">api.example.com(to be adjusted)</domain>
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</domain-config>
</network-security-config>

但问题仍然是一样的。我在google.com上也尝试了同样的方法,我也尝试了我的php文件,但在我的网络托管中,它运行得很好,所以我认为问题在我的本地主机中,可能是因为我没有使用安全连接(https(?

这让我很烦恼,因为如果我不能与本地主机混合,我还能用数据库制作一个应用程序吗?使用我真正的网络主机会减慢开发过程,我无法理解这个问题。你是如何在本地服务器上开发和测试你的应用程序的,还是我做错了一切?

编辑:我的应用程序的目的是能够登录并从任何设备读取/编辑一些数据。

已解决:我忘记在network_security_config.xml中添加我的URL

<domain includeSubdomains="true">192.168.56.172</domain>

现在它可以同时使用我的IP地址或URL。

最新更新