如何在安卓设备上浏览本地主机?

66

我尝试在我的HTC Magic上浏览本地主机。我已经通过USB将我的设备连接到Eclipse。当浏览http://10.0.2.2时,显示“页面不可用”。我记得几天前它还能用。

但是在模拟器上,我可以浏览本地主机。

有任何想法吗?


3
10.0.2.2:[portNumber] 表示网络地址(IP)和端口号,可以用于访问在同一台计算机上运行的服务。 - Jamil
你的问题是/曾经是错误的。如果你想要从一个设备连接到另一个设备,这与“localhost”没有任何关系(因此显然也与10.0.2.2无关——仅适用于模拟器的环回接口别名)。 - The incredible Jan
14个回答

60

更简单的检查方法是在模拟器或浏览器中使用10.0.2.2而不是localhost。


37

我使用本地IP地址,即192.168.0.1,它能正常工作。


但实际上,192.168.0.1指向模拟器/设备的本地主机。我在我的计算机本地主机(Apache)上运行了一个Web服务,并希望在我的设备上访问它。 - DarkLeafyGreen
6
我记得当我将设备连接到本地WLAN网络时,它可以通过10.0.2.2请求本地主机,但是通过USB连接,我觉得进行网络操作没有意义^^。 - DarkLeafyGreen
成功了!我只是指向我的网关,例如192.168.10.1。谢谢! - Abner Escócio

25

访问模拟器上的本地主机:10.0.2.2。但是,如果您有其他服务器(如XMPP服务器)等内容,则可能无法正常工作。

假设您在同一个无线网络中...

  1. 查找您的本地IP地址(应该是192.168.1.x之类的内容)-转到命令行并键入“ipconfig”以获取此信息。其中x是服务器机器分配的本地IP。

  2. 使用您的本地IP地址将Android设备连接到本地主机。

对我有效。


然而,这并不总是有效。当然,您必须指定相应服务正在侦听的端口。 - The incredible Jan

13

若要通过您的无线网络从Android设备访问在PC上运行的服务器,首先在您的PC上运行命令ipconfig(使用run (Windows标志 + R),cmd,ipconfig)。

注意IPv4地址:(它应该是192.168.0.x)其中x为某个数字。将其与端口号一起作为服务器IP地址,例如192.168.0.7:8080,在您的代码中使用。

然后,您的Android设备将通过您的无线网络路由器访问服务器。


1
“应该是192.168.0.x。” 不一定。可能是,也可能不是。您只需要选择正确的适配器(无线局域网)。 - The incredible Jan

11

我需要在我的安卓设备上(三星S3)查看本地主机,因为我正在开发Java Web应用程序。
到目前为止,最快最简单的方法是转到此链接并按照说明操作:https://developer.chrome.com/devtools/docs/remote-debugging

* 注意:必须使用Google Chrome浏览器。*
以下是对上述链接的摘要:

  • 通过USB连接电脑和手机。
  • 从设置中打开手机的“开发者选项”
  • 在计算机浏览器中输入关于:检查URL
  • 勾选“发现USB设备”(如果您在Web应用程序中使用它们,请转发端口)
  • 将所需的localhost链接复制/粘贴到浏览器的文本字段中,然后单击打开。

易如反掌


4
你可以为在本地特定端口上运行的服务器获取公共URL。
在我的工作场所,我可以使用我的机器的本地IP地址在应用程序中访问本地服务器,正如大多数其他答案建议的那样。但是在家里由于某些原因我无法这样做。尝试了很多答案并花费了很多时间后,我发现 https://ngrok.com。它非常简单明了。只需从文件夹内下载它:
ngrok portnumber

(来自Windows命令提示符)

./ngrok portnumber

(来自Linux终端)

这将为您的本地服务器提供一个公共URL,该服务器在本地主机上运行在该端口号上。您可以将其包含在应用程序中并使用该URL进行调试。

您可以安全地将本地Web服务器暴露到Internet,并捕获所有流量以进行详细检查。您还可以与远程工作的同事开发人员共享URL,并调试应用程序/服务器交互。

希望有一天能为某人节省时间。


3

结合以上几个答案以及一个额外的项目,我解决了这个问题。

  1. 如上所述,关闭防火墙[在成功连接后添加一个特定规则允许入站连接到端口]
  2. 通过ipconfig找到您的IP地址,如上所述
  3. 验证您的Web服务器是否绑定到上面找到的IP地址,而不仅仅是127.0.0.1。通过浏览到IP地址和端口进行本地测试。例如192.168.1.113:8888。如果没有,请找到解决方案。例如https://groups.google.com/forum/?fromgroups=#!topic/google-appengine-java/z4rtqkKO2hg
  4. 现在在您的Android设备上进行测试。请注意,我还关闭了我的数据连接,并且在Android上专门使用了WiFi连接。

2

Mac OSX用户

如果您的手机和笔记本电脑连接在同一个wifi上:

前往系统偏好设置 > 网络获取您的IP地址

在您的移动浏览器中输入[您的IP地址]:3000以访问localhost:3000

例如:12.45.123.456:3000


1
如果您的本地主机未运行在默认的HTTP端口(即端口80),则需要在URL中指定端口,以对应于本地主机正在运行的端口。例如,如果您的本地主机运行在85端口上,则您的URL应该是:
http://10.0.2.2:85

1

针对Mac用户:

我为此问题工作了一个下午,直到我意识到我使用的Xampp不是真正的“Xampp”,而是基于Linux虚拟机运行的Xampp VM。这导致它不能在本地主机上运行,而是使用另一个IP地址。我安装了真正的Xampp并在本地主机上运行了我的服务器,然后只需通过我的Mac IP地址访问即可。

希望这能帮助到某些人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接