我的Android应用程序与php服务器对话。我在WAMP服务器上本地运行Apache / php。我正在运行Windows 7.如果我在Windows 7上访问localhost,该网站会显示但在手机上它将在当前的Android操作系统上查找localhost,因此没有网站显示。
我设法通过打开我的apache配置到互联网然后使用我的外部IP地址来解决这个问题,这很烦人,因为我在动态IP上,有时没有互联网(+不安全)。
如何从android访问localhost(或hosts文件中的其他别名)发出http请求?
答案 0 :(得分:6)
Jon是正确的,在一般情况下你不能让android设备通过USB线缆连接到PC(与Android模拟器的主要区别在于这种连接是由别名地址完成的)。但是,您可以做一些事情:
您可以将电脑和手机连接到安全的无线路由器。它甚至不需要上游互联网连接。
显然,如果你有froyo和usb tethering选项,打开它会产生副作用,通过USB建立联网,允许手机联系电脑(只是看你的互联网流量在哪里)
如果您想在电脑上打开与手机上收听内容的连接,您可以使用adb端口转发。但听起来你想让电脑上的客户联系手机上的服务器,这样就行不通了。
答案 1 :(得分:5)
一般情况下,你不能。
如果计算机与Android设备位于同一无线网络,则可以执行的操作是连接到计算机的内部 IP。例如,在典型的家庭wifi路由器上,路由器位于192.168.1.1
,与其连接的设备为192.168.1.x
。因此,如果您的Windows 7 PC位于192.168.1.5
,您应该可以通过Android设备正常访问...
答案 2 :(得分:3)
对于本地网络,您应该使用本地IP地址(例如192.168.1.x)。 不要忘记在Windows防火墙设置中打开您的端口(主要是80)。
答案 3 :(得分:2)
模拟器的每个实例都在虚拟路由器/防火墙服务后面运行,该服务将其与开发机器的网络接口和设置以及互联网隔离开来。仿真设备无法在网络上看到您的开发计算机或其他仿真器实例。相反,它只看到它通过以太网连接到路由器/防火墙。
每个实例的虚拟路由器管理10.0.2 / 24网络地址空间 - 路由器管理的所有地址都是10.0.2。,其中是一个数字。此空间中的地址由仿真器/路由器预先分配,如下所示: 网络地址描述 10.0.2.1路由器/网关地址 10.0.2.2主机环回接口的特殊别名(即开发计算机上的127.0.0.1) 10.0.2.3第一个DNS服务器 10.0.2.4 / 10.0.2.5 / 10.0.2.6可选的第二,第三和第四DNS服务器(如果有) 10.0.2.15模拟设备自己的网络/以太网接口 127.0.0.1仿真设备自己的环回接口
另请注意,开发计算机上的地址127.0.0.1对应于模拟器自己的环回接口。如果要访问在开发计算机的环回接口(计算机上为a.k.a. 127.0.0.1)上运行的服务,则应使用特殊地址10.0.2.2。
有关详细信息,请查看http://red23rockets.com/?p=28
答案 4 :(得分:0)
打开终端并键入Unix(Ubuntu):用于Windows的ifconfig或ipconfig,您将看到: