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

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

你已经解决了你的问题? 我也有一个像你这样的问题。 这些是我已经完成的步骤:

  1. 拔下网线或closures电脑上的其他networking连接。
  2. 使用USB连接您的Android手机到您的电脑。
  3. 打开usb tethering
  4. 回到你的电脑。 检查你的IP。 我的是192.168.42.37
  5. 检查你的电脑上的web服务应用程序。 比方说http://192.168.42.37/webserviceapp
  6. 回到你的Android手机。 试试这个urlhttp://192.168.42.37/webserviceapp

现在,您可以通过手机访问您的电脑上的web服务应用程序。

这是谷歌更简单的方式支持!

  • 通过USB连接你的手机到电脑,并启用USBdebugging
  • 在您的计算机上打开Chrome浏览器,然后input以下地址: chrome://inspect/#devices 在这里输入图像说明
  • 现在,您可以通过端口转发button将您的计算机端口链接到您的设备端口。 在我的电脑上,我有地址localhost:61437 ,我只是将其链接到设备的8081端口。 记住检查“启用端口转发”checkbox

在这里输入图像说明

  • 从我的电脑上的服务( localhost:61437在这里输入图像说明

  • 屏幕从我的手机浏览器使用相同的服务( localhost:8081 )。 就是这样。 您也可以在您的应用程序中使用此服务地址 在这里输入图像说明

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

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

如果你不能连接你的Android设备在相同的局域网,例如你只有一个3G连接,你需要玩你的路由器/防火墙redirect所有传入的stream量(也许只是HTTPstream量)从你的公共IP到你的私人IP 192.168.1.2)

希望这个帮助

我会投入我的过程,因为没有任何工作对我来说。 以下是我用来连接我的物理android设备和运行在我的笔记本上的web服务(连接到手机)的步骤:

  1. 在您的Android设备上启用USBdebugging

  2. 在您的机器上运行您的Web服务。 我的web服务运行在localhost,端口3000在开发中: http://localhost:3000/api/...

  3. 运行ifconfig (Unix)或ipconfig (Windows)

  4. 在您的LAN接口上find您的机器的inet地址。 我的接口wlan0是10.0.0.121。 外部,它是68.43.XX.XXX,这不是你想要使用的地址。
  5. 由于您连接到局域网上的服务,因此请使用局域网 IP,否则由于防火墙规则,您可能会收到一个econnrefused (连接被拒绝)错误
  6. 使用该IP地址和运行Web服务的端口来构build您的http URL。 对我来说,它是http://10.0.0.121:3000/api/...

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

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

如果你不想在互联网上暴露你的DEV web服务,我同意其他答案作为好方法。 但是,如果你只是暴露web服务,那就容易多了。 有一些免费的DNS服务,但我发现没有IP是最容易设置。 我把它用于你问到的目的; 所以我可以用我的DEV web服务在真实的设备上进行testing。

如果您select使用no-ip(我与该公司没有任何关系,这只是我已经使用和熟悉的),您可以获得一个免费的可公开访问的URL,如http://MyExampleWebServer.no-ip -org ,no-ip有一个你可以安装的实用程序,即使你在一个dynamic的IP后面,它也会一直保持与这个URL相关的正确的外部IP。 如果你正在从你家工作,那么你只需要确保你将端口80的stream量转发到你的内部192.xxx IP地址(或者你使用的任何端口;对于ssl来说可能是443)。

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

我没有与它合作,但我相信dyndns也提供类似的服务。

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

说你要访问的web服务url在http://api.xyz.com ,你首先使用GasMask将这个url指向你的本地主机,然后使用Charles来build立一个代理服务器。 然后,您转到手机上的设置,进入Wi-Fi,长按所连接的networking,select修改networking,然后inputCharles给您的代理设置。

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

步骤1:获取LAN IP

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

局域网IP:192.168.xx

第2步:

转到Eclipse,打开Configured服务器

GAE服务器

在GAE开发服务器的属性 – >本地接口地址绑定,inputLAN IP地址,并保存。

第3步:

现在你可以通过访问GAE服务器了

HTTP://192.168.xx:8888 /

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

要使用自己的服务器主机访问本地Web服务,而不是使用端口的IP地址,请执行以下步骤:

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

    一个。 网页浏览器:从修改WiFinetworkingconfigurationAndroid设备的代理设置。

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

  5. 您现在可以使用您在主机上使用的任何URL连接到它,以连接到Web服务(例如http://my-local-machine.com

提示:如果您有4xx响应代码,请确保您的Web服务允许来自其他非本地主机的连接。

在我的情况下,这些解决scheme没有任何作用,因为Windows防火墙阻止它,但在防火墙上的规则没有影响。

在我的情况下的问题是,我的笔记本电脑连接到Wifi和Windows有像公共networking的Wifi连接。 我必须将networking连接更改为专用networking。 http://www.comofuncionatodo.net/tecnologia/informatica/como-cambiar-de-red-publica-a-red-privada-en-windows-10/