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

ada*_*dad 51 android android-emulator

我为Android应用程序实现了一个Web服务.Web服务正在我的本地主机(192.168.1.2)上运行.使用Android模拟器我成功连接到Web服务.我尝试使用调试模式将我的Android设备连接到Web服务,但它无法正常工作.所以我的问题是,是否可以将Android设备连接到本地主机(192.168.1.2)上运行的此Web服务而不使用真正的IP?

Mic*_*yna 35

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

  • 通过USB将手机连接到计算机并启用USB调试
  • 在您的计算机上打开Chrome浏览器并输入以下地址: chrome://inspect/#devices 在此输入图像描述
  • 现在,您可以通过端口转发按钮将计算机端口链接到设备端口.在我的计算机上,我有地址服务localhost:61437,我只是将它链接到设备的8081端口.记得检查"启用端口转发"复选框

在此输入图像描述

  • 从我的电脑上的服务屏幕(localhost:61437) 在此输入图像描述

  • 从我的移动浏览器屏幕上使用相同的服务(localhost:8081).就是这样.您也可以在应用程序中使用此服务地址 在此输入图像描述


小智 33

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

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

现在,您可以通过手机访问PC中的Web服务应用程序.


Fra*_*ita 13

那么你的localhost是127.0.0.1(或:: 1),你的LAN IP是192.168.1.2.在LAN下连接的每台PC /设备都可以通过IP 192.168.1.2到达您的Web服务

您的Android设备必须通过Wifi连接在同一LAN下连接,以便能够与192.168.1.2通信.

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

希望这有帮助


Chr*_*ice 5

我会投入我的过程,因为SO上的任何内容都不适合我.以下是我将物理android设备连接到localhost上的笔记本电脑(连接到手机)上运行的Web服务的步骤:

  1. 在Android设备上启用USB调试

  2. 在您的计算机上运行您的Web服务.我的Web服务在localhost,运行中的端口3000上运行:http://localhost:3000/api/...

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

  4. inetLAN界面上找到您机器的地址.接口是我的10.0.0.121 wlan0.在外部,它是68.43.XX.XXX,它不是您要使用的地址.
  5. 由于您要连接到LAN上的服务,因此请使用LAN IP,否则可能会econnrefused因防火墙规则而出现(连接被拒绝)错误
  6. 使用该IP地址以及运行Web服务的端口构建您的http URL.对我来说,就是这样http://10.0.0.121:3000/api/...

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