我为Android应用程序实现了一项Web服务。 Web服务正在我的本地主机(192.168.1.2)上运行。使用Android模拟器我成功连接到Web服务。我尝试使用调试模式将我的Android设备连接到Web服务,但它无法正常工作。所以我的问题是,是否有可能将Android设备连接到本地主机(192.168.1.2)上运行的此Web服务而不使用真正的IP?
答案 0 :(得分:33)
你已经解决了问题吗?我也有像你这样的问题。这些是我已经完成的步骤:
现在,您可以通过手机访问电脑中的网络服务应用程序了。
答案 1 :(得分:29)
chrome://inspect/#devices
localhost:61437
and I just linked it to device's 8081 port. Remeber to check 'Enable port forwarding' checkbox答案 2 :(得分: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)
希望这个帮助
答案 3 :(得分:5)
我会投入我的过程,因为SO上的任何内容都不适合我。以下是我将物理安卓设备连接到我的笔记本电脑上运行的网络服务(连接到手机)上的步骤:
在您的计算机上运行您的网络服务。我的Web服务在localhost,开发中的端口3000上运行:http://localhost:3000/api/...
运行ifconfig
(Unix)或ipconfig
(Windows)
inet
地址。对于接口wlan0
,我的是10.0.0.121。在外部,它是68.43.XX.XXX,不您想要使用的地址。econnrefused
(连接被拒绝)错误http://10.0.0.121:3000/api/...
当您启动应用程序时,您应该在日志,Wireshark等中连接到本地Web服务,并且您应该在Android应用程序中看到所需的活动/数据。
答案 4 :(得分:2)
我遇到了同样的问题,研究了很多,然后发现你必须明确地在防火墙设置中进行更改。您的防火墙阻止您从外部源访问您的代码。因此,您需要做的就是,进入防火墙设置,添加端口80(在我的情况下,我使用Apache http服务器)用于入站和出站。现在,您可以在手机的浏览器http://192.16 上进行测试。。**:80 /
答案 5 :(得分:1)
如果您不想在互联网上公开您的DEV网络服务,我同意其他答案是很好的方法。但是,如果只暴露Web服务,则会更容易。有许多免费的DNS服务,但我发现no-ip是最容易设置的。我将它用于你所询问的目的;所以我可以在真实设备上使用我的DEV webservice进行测试。
如果您选择使用no-ip(我与该公司没有任何关系,它只是我使用过的并且熟悉的那个),您可以获得免费的可公开访问的网址,例如http://MyExampleWebServer.no-ip-org,并且no-ip有一个你可以安装的实用程序,所以即使你是一个动态IP,它也将始终保持与该URL相关联的正确外部IP。如果您在家中工作,那么您只需确保将流量从端口80转发到内部192.x.x.x IP地址(或您使用的任何端口;对于ssl可能为443)。
就这么简单,现在您可以从任何可以访问互联网的设备上点击该网络服务。
我没有使用它,但我相信dyndns也提供类似的服务。
答案 6 :(得分:1)
我在Mac上使用GasMask和Charles Proxy Server完成了这项工作。您的手机和计算机必须位于同一网络上。
说要访问的webservice网址是http://api.xyz.com,首先使用GasMask将该网址指向您的localhost,然后使用Charles设置代理服务器。然后,您转到手机上的设置,进入Wi-Fi,长按所连接的网络,选择修改网络,然后输入Charles给您的代理设置。
答案 7 :(得分:1)
就我而言,这些解决方案都不起作用,因为Windows防火墙会阻止它,但是在防火墙上设置规则并不会起作用。
我的问题是我的笔记本电脑与Wifi连接,Windows有像公共网络一样的Wifi连接。我必须将网络连接更改为专用网络。 http://www.comofuncionatodo.net/tecnologia/informatica/como-cambiar-de-red-publica-a-red-privada-en-windows-10/
答案 8 :(得分:0)
此解决方案适用于Eclipse中的GAE开发服务器
第1步:获取LAN IP
转到Windows命令控制台(按Win + R,然后键入" cmd")。在控制台中,输入" ipconfig"。您将看到显示列表。在无线LAN适配器Wi-Fi下,获取IPv4地址。它将是192.168.x.x
LAN IP:192.168.x.x
第2步:
转到Eclipse,打开已配置的服务器
在GAE开发服务器的属性下 - >要绑定的本地接口地址,输入LAN IP地址,然后保存。
第3步:
现在您可以通过
访问GAE服务器8888 - 参考GAE开发服务器
中提到的端口号答案 9 :(得分:0)
要使用自己的服务器主机而不是带端口的IP地址访问本地Web服务,请执行以下步骤:
您正在使用以下网址:
一个。网络浏览器:从修改WiFi网络配置Android设备的代理设置。
湾Android应用程序: 为HTTP客户端设置代理。如果您使用的是Volley,请查看:Volley Behind a Proxy server。
提示:如果您有4xx响应代码,请确保您的Web服务允许来自其他非本地主机的连接。
答案 10 :(得分:-3)
如果您从Android模拟器中引用系统上的本地主机,则必须使用 http://10.0.2.2:8080/ 因为Android模拟器在虚拟机(QEMU)内部运行,因此127.0.0.1或localhost将是模拟器自己的环回地址。