Android(安卓)Http Server
16lz
2021-12-04
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 http://vaero.blog.51cto.com/4350852/939413
Android Http Server
1 引言 Android如何构建Http服务器呢?本文的小例子,约莫着,还是能做个参考的^^。恩,例子实现的是PC浏览手机文件,支持了下载和删除。 2 准备 Http协议现今还是RFC2616吧,其基础的知识还是有必要了解的。弄份协议规范书参考,是个不错的选择。之后呢,就可以开始了^^。 起初,想自己写个Http服务器学习来着,后来懒了==。有兴趣的,推荐NanoHTTPD,很小型的仅一个类的http服务器,不过,只部分支持Http/1.1。当然还有更简单的实现例子,不过,支持的就更少更单一了。 继而,还是用了SDK内的HttpService实现的。该部分api源自apache httpcomponents项目中的http core。由于SDK的不同版本,在使用细节上与最新的http core还是有很多小差异的。至于本文例子,是api-8上的实现。 3 创建 Server 创建WebServer,以HttpService实现服务器。其注册了3个请求处理,HttpFileHandler、HttpZipHandler、 HttpDelHandler。当WebServer每接收一个连接,派发至WorkerThread,新线程处理每个请求。 WebServer部分代码:- //创建HTTP请求执行器注册表
- HttpRequestHandlerRegistryreqistry=newHttpRequestHandlerRegistry();
- //增加HTTP请求执行器
- reqistry.register("*"+SUFFIX_ZIP,newHttpZipHandler(webRoot));
- reqistry.register("*"+SUFFIX_DEL,newHttpDelHandler(webRoot));
- reqistry.register("*",newHttpFileHandler(webRoot));
- //设置HTTP请求执行器
- httpService.setHandlerResolver(reqistry);
- /*循环接收各客户端*/
- isLoop=true;
- while(isLoop&&!Thread.interrupted()){
- //接收客户端套接字
- Socketsocket=serverSocket.accept();
- //绑定至服务器端HTTP连接
- DefaultHttpServerConnectionconn=newDefaultHttpServerConnection();
- conn.bind(socket,params);
- //派送至WorkerThread处理请求
- Threadt=newWorkerThread(httpService,conn);
- t.setDaemon(true);//设为守护线程
- t.start();
- }
用的jquery impromptu插件,相关css、js在assets/wfs目录内。CopyUtil提供了复制assets目录至系统目录的方法。 6 后记 前段时间开始看其他‘乱糟糟’的东西了。Android的小例子可能不太会再写了==。 超进化版传送门^^
本文出自 “-_--___---_-” 博客,请务必保留此出处http://vaero.blog.51cto.com/4350852/939413
附件下载:Android HttpServer
更多相关文章
- 浅谈Android(安卓)Surface机制
- Android实现CBC加解密
- Android的IPC机制Binder的详解汇总
- Android之网络请求7————OkHttp源码4:网络操作
- Android实现ListView异步加载图片
- android 神奇的android:clipChildren属性
- android View 重绘机制
- android 登陆、注册、并个指定用户充值
- Android(安卓)GPS架构分析