我正在编写一个程序,其中我尝试通过Android模拟器将数据存储到XAMPP服务器,但在将数据插入XAMPP时出现错误。
错误:未知状态!
我确信我收到此错误是因为我没有使用正确的网址进行连接
请检查我的以下网址以通过 Android 模拟器连接到 XAMPP 服务器:
String url = "http://ipaddress/test.php"
我也使用我的 IP 地址尝试过此操作,但每当我在浏览器上浏览它时,都会出现 找不到对象:
在 RomPager 服务器上找不到请求的 URL '/test.php'
String url = "http://127.0.0.1/test.php"
String url = "http://10.0.2.2/test.php"
注意: 我之前测试过我的php代码,它工作正常,所以我的URL有问题
我在 PHP 脚本中使用以下几行:
$objConnect = mysql_connect("localhost","root","") or die("Cannnot Connect to Database");
$objDB = mysql_select_db("registration");
127.0.0.1 它的意思是本地主机
安装了使用您的PC(个人计算机)的IP地址。
喜欢:
如果我的电脑 IP 是:192.168.0.1 那么 URL 是
String url = "http://192.168.0.1/test.php"
您无法链接到本地主机 (127.0.0.1),因为模拟器有自己的网络地址和独立的本地主机。所以
http://127.0.0.1/
连接到模拟器本身。除非您有 Android Web 服务器正在运行,否则您将收到连接被拒绝的错误。
您可以使用 Android SDK 中的 ADB 将端口从本地 PC 转发到 Android 设备。但我认为你不能将端口从 Android 设备转发到 PC。 查看adbforward帮助,但我相信这是另一个方向。
让它工作的最简单方法是使用计算机的名称而不是本地主机。您必须使用可从网络访问的真实IP,您可以使用 ipconfig 找到它。根据您的网络配置,您也许可以使用带有域的完整主机名。 IE。 mycomputer.example.org。只需从 ipconfig 附加 DNS 后缀并尝试即可。
您可能需要重新配置您的 apache 以侦听外部地址并使用防火墙阻止来自外部的访问。如果您在apache服务器上使用127.0.0.1的虚拟主机,您还可以将其移动到另一个地址的虚拟主机。
似乎 %SYSTEM%/drivers/etc/hosts 文件不起作用,它必须是 nslookup 可以解析的名称。如果本地 IP 不经常变化的话,使用本地 IP 更容易。在其他情况下,请使用 dyndns :)
查看这个 https://developer.android.com/studio/run/emulator-networking.html
使用这个“10.0.2.2”IP地址,它等于您的托管设备中的本地主机
添加到
build.gradle
:
Android{
useLibrary 'org.apache.http.legacy'
}