2013-08-20 77 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,你應該找到你正在尋找在你的瀏覽器中的文件..

對不起英文.. 這對我工作希望這可能有助於一.. 謝謝你..