2011-05-30 192 views
45

我为Android应用程序实现了Web服务。 Web服务正在我的本地主机(192.168.1.2)上运行。使用Android模拟器,我成功连接到Web服务。我试图使用调试模式将我的Android设备连接到Web服务,但它不起作用。所以我的问题是,如果可以在不使用真实IP的情况下将Android设备连接到在本地主机(192.168.1.2)上运行的此Web服务?将Android设备连接到本地主机上的Web服务

+4

+1。 – Shachi 2013-05-01 06:18:48

+0

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server – Mateusz 2017-02-20 11:04:52

回答

13

那么你的本地主机是127.0.0.1(或:: 1),你的局域网IP是192.168.1.2。在您的局域网中连接的每台电脑/设备都可以通过IP连接到您的网络服务192.168.1.2

您的Android设备必须在同一局域网内连接,可能通过Wifi连接,因此它可以与192.168.1.2进行通话。

如果你不能在同一个局域网下连接你的Android设备,例如你只有一个3g的连接,你需要使用你的路由器/防火墙来重定向所有来自公共ip的流量(也许只是http流量)你私有IP(192.168.1.2)

希望这有助于

+0

这有助于...... thnks ... – Shachi 2013-05-01 07:04:31

32

你已经解决问题了吗?我也遇到了像你这样的问题。这些是我已经完成的步骤:

  1. 拔掉网线或从电脑上关闭任何其他网络连接。
  2. 使用USB将您的android手机连接到您的电脑。
  3. 打开usb tethering
  4. 回到您的电脑。检查你的IP。我的是192.168.42.37
  5. 检查你的电脑上的web服务应用程序。让我们说http://192.168.42.37/webserviceapp
  6. 回到你的Android手机。试试这个网址http://192.168.42.37/webserviceapp

现在你可以从你的手机访问你的电脑上的web服务应用程序。

+0

加1为“打开USB tethering” – Mzn 2013-03-13 21:05:29

+0

@Zulkifli确实遵循这个步骤,但力量工作,虽然... [这是我的问题](http://stackoverflow.com/questions/21879151/calling-web-service-from-android-device)我找到答案...请帮助 – 2014-02-19 12:19:18

+0

对于OS X用户来说,一个很好的USB共享方式在这里描述:[HoRNDIS](http://joshuawise.com/horndis) – averasko 2014-03-03 16:51:17

1

如果你不想在互联网上公开你的DEV web服务,我同意其他答案作为好方法。但是,如果您只是公开Web服务,则更容易。有很多免费的DNS服务,但我发现没有IP是最容易设置的。我用它来达到你所问的目的;所以我可以在真实设备上使用我的DEV web服务进行测试。

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

就这么简单,现在您可以从任何可以访问互联网的设备中访问该web服务。

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

1

我已经在使用GasMask和Charles Proxy Server的Mac上完成了这项工作。你的手机和你的电脑必须在同一个网络上。

表示您想要访问的网络服务网址为http://api.xyz.com,您首先使用GasMask将该网址指向您的本地主机,然后使用Charles设置代理服务器。然后,您转到手机上的设置,进入Wi-Fi,长按所连接的网络,选择修改网络,然后输入Charles给您的代理设置。

4

我会抛出我的过程,因为没有任何关于SO的工作。下面是我对我的物理Android设备连接到Web服务在本地主机上我的笔记本电脑(连接到电话)运行步骤:

  1. Enable USB debugging在Android设备上

  2. 运行您Web服务在您的机器上。在本地主机上我的Web服务运行,3000端口在发展:http://localhost:3000/api/...

  3. 运行ifconfig(UNIX),或ipconfig(Windows)中

  4. LAN界面上找到你的机器的inet地址。 Mine是10.0.0.121,用于接口wlan0。外部,它是68.43.XX.XXX,它是您要使用的地址而不是
  5. 使用LAN IP,因为要连接到您的网络服务,否则你可能会得到一个econnrefused(拒绝连接)错误是由于防火墙规则
  6. 与IP地址建立你的HTTP URL,以及端口您的Web服务正在运行。对我来说,这是http://10.0.0.121:3000/api/...

当您启动您的应用程序,你应该在日志本地Web服务,Wireshark的,等的连接,你应该看到在你的Android应用程序所需的活性/数据。

2

我有同样的问题,研究了很多,然后发现你必须明确地进行防火墙设置的更改。您的防火墙阻止您的代码从外部来源访问。所以,你需要做的就是进入防火墙设置,为入站和出站添加端口80(在我的情况下,因为我使用Apache http Server)。现在,您可以在手机的浏览器上测试它http://192.16 **:80/

-3

如果您在您的系统上从Android模拟器,那么你必须使用 http://10.0.2.2:8080/ 由于Android模拟器,虚拟机内运行(QEMU)指本地主机,因此在这里127.0.0.1或本地主机将是仿真器自己的回送地址。

0

该解决方案是在Eclipse

GAE开发服务器

第1步:获取局域网IP

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

LAN IP:192.168.x.X

第2步:

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

GAE Server

GAE开发服务器在属性 - >绑定到本地接口地址,输入局域网IP地址,并保存。

3步:

现在,您可以通过

http://192.168.x.x:8888/

8888访问GAE服务器 - 指端口号,如在GAE开发服务器

22

提到这是更简单google支持的方式!

  • 通过USB将手机连接到电脑,并启用USB调试
  • 在计算机上打开Chrome浏览器并输入准确地址为:chrome://inspect/#devices enter image description here
  • 现在你可以在你的计算机端口通过链接到您的设备端口端口转发按钮。在我的电脑上,我的服务地址是localhost:61437,我只是将它连接到设备的8081端口。 Remeber从我的手机浏览器中选中 '启用端口转发' 复选框从服务

enter image description here

  • 屏幕在我的电脑上(localhost:61437enter image description here

  • 屏幕,同样的服务(localhost:8081 )。就是这样。您还在你的应用程序 enter image description here

+0

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/local-server – Mateusz 2017-02-20 11:04:37

+0

这工作得很好。我在我的hosts文件中有一个条目,似乎打破了其他解决方案。这工作。 – jcollum 2018-03-07 23:58:14

0

为了用自己的服务器主机,而不是IP地址与端口访问本地网络服务,做这些以下步骤使用此服务地址:

  1. 确保你的Android设备和你的本地机器在同一个网络上。
  2. 在您的Mac,Linux或任何其他代理服务器上安装SquidMan
  3. 将代理服务器的HTTPPort(例如5555)和客户端(例如192.168.0.0/24)配置到您自己的网络掩码中,然后运行代理服务器。
  4. 您在以下位置使用的Web服务:

    a。网页浏览器:从修改WiFi网络配置Android设备的代理设置。

    b。 Android应用程序: 为您的HTTP客户端设置代理。如果您使用的是Volley,请查看:Volley Behind a Proxy server

  5. 您可以通过使用任何网址,你正在使用你的主机上连接到Web服务现在连接到它(前http://my-local-machine.com

提示:如果你有4xx应答码,确保您的网络服务允许来自其他非本地主机的连接。

相关问题