连接失败:ECONNREFUSED

50

我正在开发一个应用程序,我想做的是在Android中从服务器数据库接收数据。所以我开始运行一些教程。我找到了一个几乎做我想要的事情的教程。但是我遇到了:

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());

我已经检查过以下内容:

  • 防火墙已禁用
  • ping 命令正常工作
  • 连接字符串与从服务器管理界面运行 servlet 时完全相同 - http://localhost:8080/Requestor/RQSRV - servlet 正在运行

我的配置:

  • 服务器:Glass Fish 4.0
  • Android 应用程序 - 在 Eclipse 中开发
  • Servlet - 在 NetBeans 中开发

端口8080上还有其他的监听吗?netstat -a -b命令在端口8080的输出是什么? - Anthony Forloney
是的,有一些应用程序正在监听该端口。 - Ján Srniček
@AnthonyForloney“Something else listening”不会引起ECONNREFUSED。这意味着没有东西在监听,或者是防火墙规则。 - user207421
2个回答

143

1
@Laalto,您能告诉我在代码中更改我的地址为10.0.2.2的位置吗? - AndroidOptimist
9
对于 Genymotion 10.0.2.2 无法正常工作,需要使用 10.0.3.2 版本。参考链接:http://stackoverflow.com/a/20914067/2162226。 - Gene Bo
4
这个想法在本地主机上运行得很好...但是在我的办公室我有不同的主机地址203.131.91.72 在这里,使用url.openConnection()总是会抛出异常“无法连接到203.131.91.72” 为解决这个问题需要哪些主机或代理权限? - sanjeev51
我也一直遇到这个错误,我试图从本地主机下载文件,但是我一直收到这个错误java.net.ConnectException: failed to connect to /30.30.30.38 (port 51749): connect failed: ECONNREFUSED (Connection refused)。 - Manoj
我也遇到了同样的问题,但我真的不明白为什么它是localhost/127.0.0.1:port而不是localhost:port。 - Mansuu....

-1

如果您正在使用Genymotion,请打开命令提示符,输入ipconfig, 找到“以太网适配器VirtualBox Host-Only Network:”和“IPv4地址..............192.1**.**.*” 复制

http://192.1..*/foldername/filename/filename.json或filename.php

要检查它是否起作用,请在模拟器中打开浏览器,复制并粘贴URL,您应该能够在浏览器中找到您要查找的文件。

抱歉我的英文不好。这个方法对我有用,希望能帮助到其他人。谢谢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接