2013-08-20 73 views
39

我正在开发一个应用程序,我想我要做的是从android服务器数据库接收数据。所以我开始运行一些教程。我发现一个正在做我想要的东西。 但我得到:连接失败:ECONNREFUSED

detailMessage "failed to connect to localhost/127.0.0.1 (port 8080): connect failed: ECONNREFUSED (Connection refused)" (id=830021648792) 
本教程的

完整的代码在发生link

错误的:

OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());

我检查:

  • 防火墙禁用
  • 平工作
  • 连接字符串是完全一样的,当我从服务器管理界面运行servlet作为 - http://localhost:8080/Requestor/RQSRV -The的servlet运行

我的配置:

  • 服务器:玻璃Fish 4.0
  • Android应用 - 在Eclipse中开发
  • Servlet - 在NetBeans中开发
+0

是否有其他东西听港口8080?端口8080的'netstat -a -b'输出是什么? –

+0

是的,这个端口上有一些apss linstening –

+0

@AnthonyForloney'别的东西听'不会导致ECONNREFUSED。这意味着*无*正在侦听或防火墙规则。 – EJP

回答

120

要从Android模拟器访问您的PC本地主机,请使用10.0.2.2而不是127.0.0.1。本地主机或127.0.0.1引用仿真设备本身,而不是模拟器运行的主机。

参考:http://developer.android.com/tools/devices/emulator.html#networkaddresses

对于Genymotion利用:10.0.3.2代替10.0.2.2

+10

你是我的英雄。 – Dave

+1

@Laalto你可以告诉我在哪里改变我的地址10.0.2.2在代码 – AndroidOptimist

+1

@拉尔托同意戴夫,你是一个英雄 – riza

-1

如果您使用genymotion然后进入命令提示符下键入ipconfig -find以太网适配器的VirtualBox主机专用网络: -find for IPV4 Address .............. 192.1 **。**。* copy

http://192.1。* /文件夹名/文件名/ filename.json或filename.php

检查其工作转到模拟器浏览器复制粘贴URL,你应该找到你正在寻找在你的浏览器中的文件..

对不起英文.. 这对我工作希望这可能有助于一.. 谢谢你..