Android emulator 将Android设备连接到本地主机上的Web服务

Android emulator 将Android设备连接到本地主机上的Web服务,android-emulator,android,Android Emulator,Android,我为Android应用程序实现了一个web服务。web服务正在我的本地主机(192.168.1.2)上运行。使用Android模拟器,我成功地连接到web服务。我尝试使用调试模式将我的Android设备连接到web服务,但没有成功。所以我的问题是,是否有可能在不使用真正IP的情况下将Android设备连接到本地主机(192.168.1.2)上运行的web服务 您的本地主机是127.0.0.1(或::1),局域网IP是192.168.1.2。在局域网下连接的每台电脑/设备都可以访问IP 192.1

我为Android应用程序实现了一个web服务。web服务正在我的本地主机(192.168.1.2)上运行。使用Android模拟器,我成功地连接到web服务。我尝试使用调试模式将我的Android设备连接到web服务,但没有成功。所以我的问题是,是否有可能在不使用真正IP的情况下将Android设备连接到本地主机(192.168.1.2)上运行的web服务

您的本地主机是127.0.0.1(或::1),局域网IP是192.168.1.2。在局域网下连接的每台电脑/设备都可以访问IP 192.168.1.2上的Web服务

您的Android设备必须在同一局域网下连接,可能是通过Wifi连接,以便能够与192.168.1.2通话

如果您无法在同一局域网下连接Android设备,例如,您只有3g连接,您需要使用路由器/防火墙将所有传入流量(可能只是http流量)从公用ip重定向到专用ip(192.168.1.2)


希望这对您有所帮助

您已经解决了问题吗?我也有你这样的问题。以下是我已经完成的步骤:

  • 拔下lan电缆或关闭电脑的任何其他internet连接
  • 使用usb将android手机连接到pc
  • 打开usb连接
  • 回到你的电脑。检查你的ip。我的是192.168.42.37
  • 在你的电脑中检查你的webservice应用程序
  • 回到你的android手机。试试这个网址

  • 现在,您可以从手机访问pc中的Web服务应用程序。

    如果您不想在internet上公开您的开发Web服务,我同意其他答案。但是,如果您只公开Web服务,那么就容易多了。有很多免费的DNS服务,但我发现没有ip是最容易设置的。我使用它正是为了你所问的目的;因此,我可以在真实设备上使用我的DEV webservice进行测试

    如果你选择不使用ip(我与那家公司没有关系,它只是我使用过并且熟悉的一个),你可以得到一个免费的公开访问URL,就像,并且没有ip可以安装一个实用程序,所以即使你使用动态ip,它也会始终保持与该URL关联的正确外部ip。如果您是在家里工作,那么您只需要确保将流量从端口80转发到内部192.x.x.x IP地址(或者您使用的任何端口;可能是443用于ssl)

    就这么简单,现在你可以从任何可以访问互联网的设备上访问该Web服务


    我没有使用过它,但我相信dyndns也提供了类似的服务。

    我在Mac上使用GasMask和Charles代理服务器完成了这项工作。您的手机和计算机必须在同一网络上


    假设您要访问的webservice url位于,首先使用GasMask将该url指向本地主机,然后使用Charles设置代理服务器。然后转到手机上的设置,进入Wi-Fi,长按所连接的网络,选择修改网络,然后输入Charles提供给您的代理设置

    我会加入到我的过程中,因为没有什么对我有效。以下是我将物理android设备连接到本地主机上笔记本电脑(连接到手机)上运行的web服务所采取的步骤:

  • 在你的Android设备上

  • 在计算机上运行web服务。我的web服务在本地主机上运行,端口3000正在开发中:
    http://localhost:3000/api/...

  • 运行
    ifconfig
    (Unix)或
    ipconfig
    (Windows)

  • 局域网界面上查找机器的
    inet
    地址。对于接口
    wlan0
    ,我的是10.0.0.121。从外部看,它是68.43.XX.XXX,它不是您想要使用的地址
  • 使用局域网IP,因为您正在连接局域网上的服务,否则,由于防火墙规则,您可能会遇到
    econnrefused
    (连接被拒绝)错误
  • 使用该IP地址和运行web服务的端口构建http URL。对我来说,这是
    http://10.0.0.121:3000/api/...

  • 当你启动应用程序时,你应该在日志、Wireshark等中连接到你的本地web服务,并且你应该在你的Android应用程序中看到所需的活动/数据。

    我也有同样的问题,研究了很多,然后发现你必须明确地更改防火墙设置。防火墙正在阻止从外部源访问代码。所以,您所需要做的就是,转到防火墙设置,为入站和出站添加端口80(在我的例子中,我使用的是ApacheHTTP服务器)。现在,您可以在手机浏览器上进行测试..**:80/

    如果您是从Android emulator引用系统上的本地主机,那么您必须使用
    由于Android emulator在虚拟机(QEMU)内运行,因此这里127.0.0.1或localhost将是emulator自己的环回地址。

    此解决方案适用于Eclipse中的GAE开发服务器

    步骤1:获取局域网IP

    转到Windows命令控制台(按Win+R,然后键入“cmd”)。在控制台中,输入“ipconfig”。您将看到一个显示列表。在无线局域网适配器Wi-Fi下,获取IPv4地址。大概是192.168.x.x

    局域网IP:192.168.x.x

    步骤2:

    转到Eclipse,打开已配置的服务器

    在GAE Development Server的属性->要绑定到的本地接口地址下,输入LAN IP地址,然后保存

    步骤3:

    现在,您可以通过以下方式访问GAE服务器:

    8888-指GAE开发服务器中提到的端口号

    这是谷歌支持的更简单的方式!
    • 通过usb将手机连接到计算机并启用usb调试
    • 在您的计算机上打开Chrome浏览器并准确键入以下内容