【问题标题】:java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refusedjava.net.ConnectException: localhost/127.0.0.1:8080 - 连接被拒绝
【发布时间】:2011-07-26 14:47:11
【问题描述】:

我正在使用 xampp apache 服务器从我的机器为应用程序提供资源。但我收到上述错误。

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

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

【问题讨论】:

标签: android


【解决方案1】:

localhost 和 127.0.0.1 都是表示“当前机器”的方式。因此,您 PC 上的 localhost 是 PC,而 android 上的 localhost 是手机。由于您的手机没有运行网络服务器,它当然会拒绝连接。

您需要获取机器的 IP 地址(在 Windows 上使用 ipconfig 来查找)并使用它而不是 127.0.0.1。这可能仍然无法正常工作,具体取决于您的网络/防火墙的设置方式。但这是一个完全不同的话题。

【讨论】:

  • 你能详细解释一下吗,需要改变我的机器IP地址
  • 如果你输入 ipconfig 它会告诉你你机器的 IP 地址。这很可能是您网络的私有 IP 地址,因此只能从同一网络上的设备访问,因此 WIFI 可能会工作,3G 可能不会。
  • @skorulis 是的,我们需要设置我们机器的 url,它与 127.0.0.1 不同,因为我们在应用程序代码中连接到网络。
  • 您还可以为运行服务器的计算机设置特定 IP。在您的 Android 应用程序中使用此 IP。这样做会更好,因为在您重新启动路由器或计算机的情况下,您通常会获得计算机的新 IP,并且您可能需要在代码中更改它。
【解决方案2】:

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

如果您从 Android 模拟器引用系统上的本地主机,那么您必须使用 http://10.0.2.2:8080/,因为 Android 模拟器在虚拟机中运行,因此这里的 127.0.0.1localhost 将是模拟器自己的环回地址。

参考:Emulator Networking

【讨论】:

  • 是的,我正在做同样的事情。你能详细解释一下吗?哪里把ip地址改成10.0.2.2。这是我试图从 xampp 服务器访问的文件夹localhost:8080/aero
  • 我明白了,我们必须将应用程序中给出的路径(如http://localhost:8080/link/to/resource.xml)更改为http://10.0.2.2:8080/link/to/resource.xml
  • @VikasPatidar 你能告诉我在我的代码中将这个地址更改为 10.0.2.2 作为一个新手
  • 例如,如果您的 URL 类似于 http://localhost:8080/Getdata.phphttp://127.0.0.1:8080/Getdata.php,那么您必须将其更改为使用 http://10.0.2.2:8080/Getdata.php
  • 如果您在 Genymotion 上运行,请将 10.0.2.2 替换为 10.0.3.2
【解决方案3】:

在安卓中

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

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

祝你好运!

【讨论】:

  • 在哪个文件中?
  • 基本 URL 的位置,可能在常量类或改造类中
  • @PravinDesai 您可以在 gradle 中添加 BaseURL。 stackoverflow.com/questions/55518814/…
  • @PhuocLuong 谢谢,我不知道这也是可能的。
【解决方案4】:

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

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

并确保您确实在清单中设置了互联网权限

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

【讨论】:

    【解决方案5】:

    如果您在 url 中使用 localhost 并在 emulator 中测试您的应用程序,您只需将系统的 ip 地址替换为 URL 中的 localhost。或者您可以使用 10.0.2.2 代替 localhost。

    http://localhost/webservice.phphttp://10.218.28.19/webservice.php

    其中 10.218.28.19 -> 系统的 IP 地址。

    http://localhost/webservice.phphttp://10.0.2.2/webservice.php

    【讨论】:

      【解决方案6】:

      解决方法很简单。

      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
      

      【讨论】:

        【解决方案7】:

        将 localhost 替换为 10.0.2.2 是正确的,但您也可以将 localhost 替换为您的物理机的 ip(更适合调试目的)。 Ofc,如果ip是由dhcp提供的,你每次都得改...

        祝你好运!

        【讨论】:

          【解决方案8】:

          您只需要使用您的本地 IP 地址:使用 cmd 命令“ipconfig”和您的服务器端口号,如下所示:

          字符串 webServiceUrl = "http://192.168.X.X:your_local_server_port/your_web_service_name.php"

          并确保您确实在项目清单中设置了互联网权限

          它对我来说非常有效

          祝你好运

          【讨论】:

            【解决方案9】:
            1. 在 Androidmanifest.xml 文件中添加 Internet 权限

            使用权限 android:name="android.permission.INTERNET

            1. 在windows中打开cmd
            2. 输入“ipconfig”然后回车
            3. 找到 IPv4 地址。 . . . . . . . . . . : 192.168.X.X
            4. 使用此网址 "http://192.168.X.X:your_virtual_server_port/your_service.php"

            【讨论】:

              【解决方案10】:

              它对我有用。我使用 genymotion 来运行应用程序。

              1.首先我检查了我的本地 IP。转到命令模式>> 并编写 ipconfig。 示例:Windows 10>> 搜索 cmd>> 然后写入 ipconfig 。 2.然后获取你本地的ip信息>>> 3.使用给你的本地主机IP和虚拟机IP。您需要为 genymotion 使用虚拟框 ip。检查下面的屏幕截图。你可以在virtualbox主机网络下的任何ip下

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-08-13
                • 2018-12-26
                • 1970-01-01
                • 1970-01-01
                • 2015-05-18
                相关资源
                最近更新 更多