多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 访问本地服务器 本节介绍如何在安卓设备上访问工作机本地起的web服务页面。 * 通过端口映射,可以在安卓设备上访问工作机上本地服务的页面 * 如果工作机上的web服务使用了自定义域名,可以通过自定义域名映射,让安卓设备访问 ### 端口映射 端口映射通过在安卓设备上创建一个监听TCP端口,把它映射到工作机上相应web服务的TCP端口,便能够在安卓设备上通过USB连接直接访问工作机上的web服务页面,而不依赖于网络配置。 例如,我们在工作机本地有一个web服务如下图所示,在工作机上使用localhost访问正常。此时,我们想在安卓设备上访问此web页面。直接在安卓设备上使用``localhost:8000/index.html``肯定访问不了。这时我们就需要设置端口映射。 ![](https://box.kancloud.cn/bb245c68fc8b1b1b32c4c518c2dc5d73_1920x1057.png) 在上一节中讲的设备检查页面,找到如下图所示的**端口映射**摁钮。 ![](https://box.kancloud.cn/60f1e807d91faf350c4a3750e5eecc86_662x263.png) 点击后,会出现如下图所示的弹窗,左侧的Port输入框填入安卓设备上监听的端口(可以和工作机上端口一致,视端口被占用情况而定),例如,你想在安卓设备上通过访问``localhost:5000/index.html``来访问工作机上的web服务页面,那么就填5000。此处,我保持跟工作机一致,使用8000端口。右侧填写工作机的主机名和端口号。最后勾上开启端口映射,点击完成。 ![](https://box.kancloud.cn/b69d2c7aaeef38cc115b65c29776d609_302x338.png) 配置好的,但可以在安卓设备通过``localhost:5000/index.html``来访问了,我们在如下红色框中输入``localhost:5000/index.html``,点击**打开**,打开后,在打开列表中便能看到,此时就可以用上一节介绍的方法调试此页面了。 ![](https://box.kancloud.cn/28daa91eccd2c944d92d03d3b82ba66b_659x318.png) ### 虚拟主机映射 当在 localhost 域名上进行开发的时候,端口转发非常有效。但是有些情况下可能需要是使用自定义的本地域名。 例如,假设你正在使用的第三方 JavaScript SDk 只有在白名单上的域名中才能运行,或者安全认证系统只允许在特定域名下登录等等情况。此时需要在hosts文件中加入一个进入点,比如 127.0.0.1 callcenter1.ysf.space。然后开启代理服务器后,我们便能通过代理方式,调试本地的js代码。 如下图所示:url:`callcenter1.ysf.space:8002/login` ![](https://box.kancloud.cn/fcf0384a9e272f5bfd003fe3a79d8638_1920x1056.png) 接下来,我们想在安卓设备上访问该页面,并进行调试。如下图所示,根据前一节介绍的方法我们设置工作机的web服务和安卓设备之间的端口映射。 为了后面我们设置网络代理更加清晰,此时我们把端口设置成不一样,使用8008作为安卓设备监听的端口号。 ![](https://box.kancloud.cn/77a549a17dde04849fd38aa47f88233d_307x340.png) 设置完成后,我们可以在安卓设备上通过url:`localhost:8008/login`访问,如下图所示 ![](https://box.kancloud.cn/3da3033a80c1c13b6be8def552ef3a91_1280x729.png) 但是,由于安全认证的原因,登陆必须在`callcenter1.ysf.space`域名下才可以,我们需要在安卓设备上也通过`callcenter1.ysf.space:8002/login`访问进行调试。于是,**我们需要设置安卓设备的网络连接,将所有网络请求均代理到工作机的8002端口**,步骤如下: 1. 打开安卓设备的**设置**>**WLAN** 2. 长按当前连接的网络,弹出选项对话框 3. 选择**修改网络** 4. 勾选**高级** 5. **代理模式**设置为**手动** 6. **代理主机**机设置为localhost 7. **代理端口**,输入上面我们设置端口映射时输入的8008 8. 点击**保存** 通过这些设置,安卓设备会将它所有的请求都发给工作机上的代理服务器。该代理代表安卓设备发出请求,故而在工作机上会对安卓设备上发出的本地特定域名的请求进行合理地解析。 ![](https://box.kancloud.cn/f07a3a2b2fe62b3a673fa491d15163ce_1280x729.png) 现在便可以跟在工作机上一样使用`callcenter1.ysf.space:8002/login`访问,并且能够正确进行登陆,如上图所示。需要特别注意的是,当调试结束后,请按照设备代理介绍的方法,将网络的代理设置关闭,才能进行正常的上网。