Android Http Servercss
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部分代码:
-
- HttpRequestHandlerRegistry reqistry = new HttpRequestHandlerRegistry();
-
- reqistry.register("*" + SUFFIX_ZIP, new HttpZipHandler(webRoot));
- reqistry.register("*" + SUFFIX_DEL, new HttpDelHandler(webRoot));
- reqistry.register("*", new HttpFileHandler(webRoot));
-
- httpService.setHandlerResolver(reqistry);
-
- isLoop = true;
- while (isLoop && !Thread.interrupted()) {
-
- Socket socket = serverSocket.accept();
-
- DefaultHttpServerConnection conn = new DefaultHttpServerConnection();
- conn.bind(socket, params);
-
- Thread t = new WorkerThread(httpService, conn);
- t.setDaemon(true);
- t.start();
- }
4
启动
Server
建立了个WebService,将WebServer套进去,实现Service方式。界面很简单,就一个按钮,启动以下:

5
访问
Server
笔记本访问上述网址呗。


当目录存在且可读时才有上述画面,否则会简单报个40四、403什么的页面。当可写时,增长删除选项。返回响应页面,在HttpFileHandler内处理的。
1)下载
文件夹:会自动打包成zip下载。其在HttpZipHandler内处理的。
文件:自动判断类型,或显示或下载。没多作处理,仍就是HttpFileHandler处理的。
2)删除
会提示是否删除。肯定删除的话,会等处理结束提示完成,继而确认自动刷新。

用的jquery impromptu插件,相关css、js在assets/wfs目录内。CopyUtil提供了复制assets目录至系统目录的方法。
6
后记
前段时间开始看其余‘乱糟糟’的东西了。Android的小例子可能不太会再写了==。
本文出自 “-_--___---_-” 博客,请务必保留此出处http://vaero.blog.51cto.com/4350852/939413jquery
附件下载:Android HttpServerweb