2011-03-31 135 views
74

我使用xampp apache服务器为我的机器上的应用程序提供资源。但我收到上述错误。java.net.ConnectException:localhost/127.0.0.1:8080 - 连接被拒绝

我在谷歌上找到了一些东西。指向可能的解决方案 http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a

上述问题的解决方案是什么?

+0

使用10.0.2.2回环到localhost(127.0.0.1)。你可以在这里阅读更多关于它[Android模拟器网络](https://developer.android.com/studio/run/emulator-networking.html) – 2017-05-03 14:43:41

回答

220

既然你没有指定你从设备或模拟器连接到服务器,所以我猜你正在模拟器中使用你的应用程序。

如果你要把系统从Android模拟器上指本地主机,那么你必须使用http://10.0.2.2:8080/由于Android模拟器在虚拟机中运行,因此在这里127.0.0.1localhost将是仿真器自身的回送地址。

参见:Emulator Networking

+0

是的,我正在做同样的事情。你能详细解释一下吗?在哪里将IP地址更改为10.0.2.2。这是我想从xampp服务器访问的文件夹http:// localhost:8080/aero/ – pradeep 2011-03-31 05:56:17

+1

我明白了,我们必须在应用程序中提供路径,例如http:// http:// localhost:8080/link/to/resource.xml到http:// http://10.0.2.2:8080/link/to/resource.xml – pradeep 2011-03-31 06:06:04

+1

是的,您需要在应用程序代码中更改它。 – 2011-03-31 06:09:35

13

localhost和127.0.0.1都是“当前机器”的说法。所以你的PC上的本地主机就是PC,而android上的本地主机就是手机。由于你的手机没有运行网络服务器,当然它会拒绝连接。

您需要获取机器的IP地址(在windows上使用ipconfig查找)并使用该地址代替127.0.0.1。根据您的网络/防火墙的设置情况,这可能仍不起作用。但这是一个完全不同的话题。

+0

可以ü更详细地解释,确实需要提醒我的机器IP地址 – pradeep 2011-03-31 05:21:21

+2

如果你输入ipconfig,它会告诉你你机器的IP地址。这很可能是您的网络的私有IP地址,所以只能从位于同一网络上的设备访问,以便WIFI可能工作,3G可能不会。 – skorulis 2011-03-31 05:29:28

+0

@skorulis是的,我们需要设置与127.0.0.1不同的我们机器的url,因为我们在应用程序代码中连接到网络。 – 2016-06-04 07:14:48

18

在android系统

替换:String webServiceUrl = "http://localhost:8080/Service1.asmx"

有了:String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"

祝你好运!

8

你只需要使用本地(但真实)的IP地址和端口号这样的:

String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"

并确保您没有设置内的舱单

<uses-permission android:name="android.permission.INTERNET" />

Internet权限
0

解决方案是非常简单的。

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. 

[3]最无能的一步。 让你的网络家庭网络

进入控制面板>网络和Internet>网络和共享中心

Click on your Network and select HOME NETWORK 

enter image description here

2

与10.0.2.2更换本地主机是正确的,但你可以用你的物理机器的ip来代替localhost(这对调试更好)。 OFC,如果IP是通过DHCP提供你就必须改变每次它...

祝你好运!

7
  1. 添加Internet权限在AndroidManifest.xml文件

使用许可权的android:NAME = “android.permission.INTERNET对

  • 在windows中打开cmd
  • 键入“ipconfig”,然后按回车键
  • find IPv4 Addre SS。 。 。 。 。 。 。 。 。 。 。 :192.168.X.X
  • 使用这个网址 “http://192.168.X.X:your_virtual_server_port/your_service.php
  • 1

    它为我工作。我使用genymotion来运行应用程序。

    1.Firstly我一直在检查我的本地IP。转到命令模式>>并写入ipconfig。 方示例:Windows 10 >>搜索CMD >>然后写IPCONFIG。 2.然后让你的本地IP信息>>> 3.使用给你的本地主机IP和虚拟IP框。你需要使用虚拟盒子ip for genymotion.Check下面的截图。你可以在你下面下VirtualBox主机网络的任何IP enter image description here