没有合适的资源?快使用搜索试试~ 我知道了~
首页在Android设备上搭建Web服务器的方法
在Android设备上搭建Web服务器的方法
812 浏览量
更新于2023-05-27
评论 2
收藏 149KB PDF 举报
一般而言,Android 应用在请求数据时都是以 Get 或 Post 等方式向远程服务器发起请求,那你有没有想过其实我们也可以在 Android 设备上搭建一个小型 Web 服务器,并且实现常规的下载图片、下载文件、提交表单等功能呢? 下面要介绍的就是如何在 Android 设备上搭建一个 Web 服务器,这个 Web 服务器的功能有如下几点: 接受客户端文件上传、下载文件 动态 Http API,像 Java 的 Servlet 一样写接口 部署静态网站,例如纯Html,支持 JS、CSS、Image 分离 部署动态网站 这需要依赖一个开源库来实现:AndServer A
资源详情
资源评论
资源推荐

在在Android设备上搭建设备上搭建Web服务器的方法服务器的方法
一般而言,Android 应用在请求数据时都是以 Get 或 Post 等方式向远程服务器发起请求,那你有没有想过其实我们也可以在
Android 设备上搭建一个小型 Web 服务器,并且实现常规的下载图片、下载文件、提交表单等功能呢?
下面要介绍的就是如何在 Android 设备上搭建一个 Web 服务器,这个 Web 服务器的功能有如下几点:
接受客户端文件上传、下载文件
动态 Http API,像 Java 的 Servlet 一样写接口
部署静态网站,例如纯Html,支持 JS、CSS、Image 分离
部署动态网站
这需要依赖一个开源库来实现:AndServer
AndServer 类似于 Apache 和 Tomcat,支持在同个局域网下的设备能够以常规的网络请求方式来向 Web 服务器请求数据,
只要指明 Web 服务器的 IP 地址和端口号即可
那么,这个 Web 服务器的用途有哪些呢?
说下我现在遇到的一个需求吧!需要实现两台设备(Android 或 ios 设备)在无网络情况下进行数据交流。本来是打算让设备
之间的交流通道以 Wifi 来链接,即某一台设备连上另一台设备的 Wiif 热点,这样两者之间就建立起了一条“通道”,之后通过建
立 Socket 连接来获取输入输出流,通过输入输出流来交换数据。可是这样就需要处理好在高并发情况下的数据同步和解析问
题,比较麻烦,而通过 AndServer 就可以直接套用项目已有的网络请求框架,直接以网络请求的方式来交流数据,而服务端
也较好的处理了并发问题
Gradle 远程依赖远程依赖
implementation 'com.yanzhenjie:andserver:1.1.3'
搭建服务器搭建服务器
搭建服务器的方式很简单,支持链式调用。指明服务器在本机的 IP 地址上监听,并指定端口号为 1995 ,并开放了三个接口
分别用于:下载文件、下载图片、Post表单
AndServer server = AndServer.serverBuilder()
.inetAddress(NetUtils.getLocalIPAddress()) //服务器要监听的网络地址
.port(Constants.PORT_SERVER) //服务器要监听的端口
.timeout(10, TimeUnit.SECONDS) //Socket超时时间
.registerHandler(Constants.GET_FILE, new DownloadFileHandler()) //注册一个文件下载接口
.registerHandler(Constants.GET_IMAGE, new DownloadImageHandler()) //注册一个图片下载接口
.registerHandler(Constants.POST_JSON, new JsonHandler()) //注册一个Post Json接口
.filter(new HttpCacheFilter()) //开启缓存支持
.listener(new Server.ServerListener() { //服务器监听接口
@Override
public void onStarted() {
String hostAddress = server.getInetAddress().getHostAddress();
Log.e(TAG, "onStarted : " + hostAddress);
ServerPresenter.onServerStarted(ServerService.this, hostAddress);
}
@Override
public void onStopped() {
Log.e(TAG, "onStopped");
ServerPresenter.onServerStopped(ServerService.this);
}
@Override
public void onError(Exception e) {
Log.e(TAG, "onError : " + e.getMessage());
ServerPresenter.onServerError(ServerService.this, e.getMessage());
}
})
.build();
开启服务器
server.startup();
停止服务器
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0