如何从Android模拟器连接到我的http://localhost web服务器

我可以在Android模拟器中做什么来连接到我的本地主机web服务器页面在http://localhosthttp://127.0.0.1?

我已经尝试过了,但模拟器仍然需要我的请求,如谷歌搜索localhost或更糟糕的是,它说,它没有找到页面,而我的web服务器正常运行。

420718 次浏览

localhost指的是运行代码的设备,在本例中是模拟器。

如果你想引用正在运行Android模拟器的计算机,请使用IP地址10.0.2.2代替。

enter image description here

你可以从在这里阅读更多。

我在家里的机器上成功地使用了10.0.2.2,但在工作中,它不起作用。在瞎折腾了几个小时之后,我使用Android虚拟设备 (AVD)管理器创建了一个新的模拟器实例,最终10.0.2.2工作了。

我不知道其他模拟器实例有什么问题(平台是相同的),但如果您发现10.0.2.2不起作用,请尝试创建一个新的模拟器实例。

尝试http://10.0.2.2:8080/,其中8080是端口号。它工作得很完美。如果你只是尝试10.0.2.2是行不通的。需要添加端口号。此外,如果Microsoft IIS已安装,请尝试从控制面板关闭该功能(如果使用任何windows操作系统),然后尝试如上所述。

对于我的Mac OS mountain Lion设备:

< a href = " http://10.0.2.2:8888 " rel =“nofollow”noreferrer > http://10.0.2.2:8888 < / >

工作完美!

如果你在windows中,你可以进入simbol system,然后写< em > ipconfig < / em >,然后检查分配给你的机器的ip是什么。

另一种解决方法是从no-ip.org获得一个免费域名,并将其指向您的本地ip地址。 然后,你可以尝试http://yourdomain.no-ip.org/yourwebservice

,而不是使用http://localhost/yourwebservice

默认AVD使用10.0.2.2使用10.0.3.2

根据文件:

10.0.2.2 -主机环回接口的特殊别名(例如,开发计算机上的127.0.0.1)

查看模拟器网络,了解模拟器网络的更多技巧。

我不知道,也许这个话题已经解决了,但是当我最近在Windows机器上尝试这样做的时候,我遇到了很多困难。 所以我的解决方法很简单。我已经下载了这个软件 http://www.lenzg.net/rinetd/rinetd.html遵循他们关于如何进行端口转发的说明,然后成功地我的android设备连接到asp.net localhost项目,并停止在我的断点上

我的rinetd.conf文件:

10.1.1.20 1234 127.0.0.1 1234
10.1.1.20 82 127.0.0.1 82
其中10.1.1.20是我的本地主机ip, 82和1234是我的端口 我也有板条箱浴文件 为了方便生活你的名字bathfile.bat,把该文件在rinedfolder。我的浴文件:

rinetd.exe -c rinetd.conf
在启动这个软件后,启动你的aps.net服务器,并尝试从android设备或本地网络中的任何设备访问(例如Computer ABC启动putty),你会看到一切正常。不需要去路由器设置或做任何其他复杂的事情。 我希望这对你有所帮助。享受。< / p >

我需要找出模拟器“Nox App Player”的系统主机IP地址。以下是我如何找出它是172.17.100.2

  1. 从应用程序商店安装了Android终端模拟器
  2. 发出ip link show命令显示所有网络接口。特别令人感兴趣的是eth1接口
  3. 发出ifconfig eth1命令,显示net为172.17.100.15/255.255.255.0
  4. 172.17.100.1开始ping地址,在“172.17.100.2”上找到了一个命中地址。不确定防火墙是否会干扰,但在我的情况下没有

也许这可以帮助其他人解决其他模拟器的问题。

你可以在每次运行模拟器时使用localhost:8000来连接到你的机器的本地主机(仅在Mac上测试):

adb reverse tcp:8000 tcp:8000

只要把它放到Android Studio终端。

它基本上设置了一个反向代理,其中运行在您的手机上的http服务器接受端口上的连接,并将它们连接到您的计算机,反之亦然。

如果你使用Android模拟器:

您可以通过以下ip连接到您的Pc localhost: # EYZ0 =比;如果你在xamp中设置了你的机器端口,你必须使用这个端口。在我的例子中10.0.2.2:2080

enter image description here

enter image description here

你也可以使用你的网络适配器IP地址。在CMD中输入ipconfig并找到你的适配器IP地址:

enter image description here

enter image description here

如果模拟器不能连接到这个ip,关闭模拟器,并从AVD管理器中使用cold boot打开它:

enter image description here

如果您使用Genymotion:

您可以通过这个IP: 10.0.3.2:{port number}连接到机器localhost 或者如上所述的适配器IP地址:在我的例子中:192.168.1.3:2080

允许安装PWA

首先,安装Android调试桥:

$ sudo apt install adb android-sdk-platform-tools-common

像往常一样启动你的Android模拟器,例如:

$ ~/Android/Sdk/emulator/emulator -avd Pixel_3a_API_30_x86

只有这样,在Android模拟器的网桥上配置反向代理,将localhost HTTP请求转发到主机上运行的localhost服务器的适当端口(例如8000),反之亦然:

$ adb reverse tcp:8000 tcp:8000
渐进式web应用程序(PWA)正在localhost:8000上提供服务 而PWA不允许从10.0.2.2的IP地址安装

警告: adb reverse tcp:8000 tcp:8000需要重新发布每个Android模拟器的调用。

因此,用bash脚本启动一个Android模拟器,后面跟着一个反向代理,看起来像这样:

#!/usr/bin/env bash


$HOME/Android/Sdk/emulator/emulator -avd Pixel_3a_API_30_x86 > /dev/null 2>&1


adb reverse tcp:8000 tcp:8000

我知道这是旧的,但如果你发现10.0.2.2不能作为计算机IP,跟踪这些指令找到它

公认的答案是正确的,但对我的情况不适用。我必须在主机上关闭公司VPN-client的情况下创建虚拟设备。这是完全可以理解的,因为许多公司网络使用以10开头的地址(专用网络范围),这可能会干扰特殊地址10.0.2.2

对于试图访问本地IIS服务器(ASP.NET)的任何人

对我来说,公认的答案还不够。我必须在applicationhost中添加127.0.0.1的绑定。它是我的ASP. config的根源。网络解决方案。