我在Google上找到一些可能的解决方案,指向这里:http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a 请问如何解决上述问题?
由于您没有指定是从设备或模拟器连接到服务器,所以我猜您正在使用模拟器运行应用程序。
如果您是在Android模拟器上引用系统中的localhost,则必须使用 http://10.0.2.2:8080/
。因为Android模拟器运行在虚拟机中,所以这里的127.0.0.1
或localhost
将是模拟器自己的环回地址。
参考: 模拟器网络
http://localhost:8080/Getdata.php
或者http://127.0.0.1:8080/Getdata.php
,那么你需要将它改为使用http://10.0.2.2:8080/Getdata.php
。 - Vikas Patidar10.0.2.2
替换为10.0.3.2
。 - Jacob R在Android中
替换:String webServiceUrl = "http://localhost:8080/Service1.asmx"
使用:String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"
祝你好运!
“localhost”和“127.0.0.1”都表示“当前计算机”的意思。所以,在你的PC上,“localhost”就是指该PC本身,而在Android手机上,“localhost”就是指该手机本身。因为你的手机没有运行Web服务器,所以它会拒绝连接。
你需要获取计算机的IP地址(在Windows上使用ipconfig查找),并使用该IP地址代替127.0.0.1。但这可能仍无法正常工作,这取决于你的网络/防火墙设置,但这是完全不同的话题。
<uses-permission android:name="android.permission.INTERNET"/>
您只需要使用本地(但实际的)IP地址和端口号,像这样:
String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"
并确保在清单文件中设置了互联网权限
<uses-permission android:name="android.permission.INTERNET" />
您只需要使用本地IP地址:使用cmd命令“ipconfig”和您的服务器端口号,如下所示:
String webServiceUrl = "http://192.168.X.X:your_local_server_port/your_web_service_name.php"
并确保在项目清单中设置了internet权限。
对我来说它完美地运作着。
祝好运。
将 localhost 替换为 10.0.2.2 是正确的,但您也可以将 localhost 替换为您物理机器的 IP(这样更好用于调试目的)。
当然,如果 IP 是由 DHCP 提供的,则每次都需要更改...
祝你好运!
解决方法非常简单。
1 在 Androidmanifest.xml 文件中添加网络权限。
<uses-permission android:name="android.permission.INTERNET" />
[2] 修改你的httpd.config文件
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.
Click on your Network and select HOME NETWORK