我正在使用xampp apache服务器从我的机器为应用程序提供资源。但我得到了上述错误。
我在google上得到了一些东西。指向可能的解决方案 http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a
上述问题的解决方案是什么?
答案 0 :(得分:258)
由于您未指定从设备或模拟器连接到服务器,因此我猜您正在模拟器中使用您的应用程序。
如果您从Android模拟器中引用系统上的本地主机,则必须使用http://10.0.2.2:8080/
因为Android模拟器在虚拟机中运行,因此127.0.0.1
或localhost
将是模拟器的自己的环回地址。
答案 1 :(得分:22)
在android
中替换:String webServiceUrl = "http://localhost:8080/Service1.asmx"
使用:String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"
答案 2 :(得分:18)
localhost和127.0.0.1都是说“当前机器”的方式。因此,PC上的localhost是PC,而android上的localhost就是手机。由于您的手机当然没有运行网络服务器,因此会拒绝连接。
您需要获取计算机的IP地址(在Windows上使用ipconfig查找)并使用它而不是127.0.0.1。这可能仍然无法正常工作,具体取决于您的网络/防火墙的设置方式。但这是一个完全不同的话题。
答案 3 :(得分:9)
您只需使用本地(但真实的)IP地址和端口号,如下所示:
String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"
并确保您在清单中设置了互联网权限
<uses-permission android:name="android.permission.INTERNET" />
答案 4 :(得分:9)
uses-permission android:name =“android.permission.INTERNET
答案 5 :(得分:4)
您只需使用本地IP地址:使用cmd命令&#34; ipconfig&#34;和你的服务器端口号如下:
String webServiceUrl =&#34; http://192.168.X.X:your_local_server_port/your_web_service_name.php&#34;
确保您在项目清单中设置了互联网权限
它对我来说非常合作
祝你好运
答案 6 :(得分:2)
将localhost替换为10.0.2.2是正确的,但您可以将localhost替换为您的物理机的ip(最好用于调试目的)。 Ofc,如果ip是由dhcp提供的,你每次都要改变它......
祝你好运!答案 7 :(得分:1)
它为我工作。我使用genymotion运行应用程序。
1.首先,我检查了我的本地IP。转到命令模式&gt;&gt;并写入ipconfig。 示例:Windows 10&gt;&gt;搜索cmd&gt;&gt;然后写入ipconfig。 2.然后获取您的本地IP信息&gt;&gt;&gt; 3.使用你的localhost ip和虚拟盒ip。你需要使用虚拟盒ip进行genymotion.Check下面的截图。您可以在虚拟机主机网络下的任何IP下面
答案 8 :(得分:0)
解决方案很简单。
1在Androidmanifest.xml文件中添加Internet权限
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
TO
Order Deny,Allow
Allow from all
Allow from 127.0.0.1
And restart your server.
[2]更改httpd.config文件
Click on your Network and select HOME NETWORK
[3]最无力的一步。 将您的网络作为家庭网络
转到“控制面板”&gt;网络和互联网&gt;网络和共享中心
{{1}}