【问题标题】:connect failed: ECONNREFUSED连接失败:ECONNREFUSED
【发布时间】:2013-08-22 21:27:13
【问题描述】:

我正在开发一个应用程序,我想我想做的是从 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 输出什么?
  • 是的,那个端口上有一些apss linsting
  • @AnthonyForloney '其他监听'不会导致 ECONNREFUSED。这意味着没有正在监听,或者防火墙规则。

标签: java android exception servlets connect


【解决方案1】:

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

参考:https://developer.android.com/studio/run/emulator-networking#networkaddresses

对于 Genymotion 使用:10.0.3.2 而不是 10.0.2.2

【讨论】:

  • @Laalto 你能告诉我在哪里将我的地址更改为代码中的 10.0.2.2
  • 对于 Genymotion 10.0.2.2 将不起作用。您需要使用 10.0.3.2,感谢:stackoverflow.com/a/20914067/2162226
  • 这个想法适用于 localhost....但在我的办公室我有不同的主机地址 203.131.91.72 这里使用 url.openConnection() 总是抛出异常“无法连接到 203.131.91.72”解决这个问题需要什么主机或代理权限??
  • 我也不断收到此错误,我尝试从本地主机下载文件但我不断收到此错误 java.net.ConnectException: failed to connect to /30.30.30.38 (port 51749) :连接失败:ECONNREFUSED(连接被拒绝)
  • 我也面临同样的问题,但我真的不明白为什么它是 localhost/127.0.0.1:port 而不是 localhost:port
【解决方案2】:

如果您使用的是 genymotion,请转到命令提示符输入 ipconfig -查找以太网适配器 virtualBox 仅主机网络: -查找 IPv4 地址........192.1**.**.* 复制

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

要检查它是否可以在模拟器中复制粘贴到浏览器,您应该在浏览器中找到您正在查看的文件..

对不起英语.. 这对我有用,希望这可能对某人有所帮助.. 谢谢你。。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2019-01-03
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    相关资源
    最近更新 更多