原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。 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部分代码:
  1. //创建HTTP请求执行器注册表
  2. HttpRequestHandlerRegistryreqistry=newHttpRequestHandlerRegistry();
  3. //增加HTTP请求执行器
  4. reqistry.register("*"+SUFFIX_ZIP,newHttpZipHandler(webRoot));
  5. reqistry.register("*"+SUFFIX_DEL,newHttpDelHandler(webRoot));
  6. reqistry.register("*",newHttpFileHandler(webRoot));
  7. //设置HTTP请求执行器
  8. httpService.setHandlerResolver(reqistry);
  9. /*循环接收各客户端*/
  10. isLoop=true;
  11. while(isLoop&&!Thread.interrupted()){
  12. //接收客户端套接字
  13. Socketsocket=serverSocket.accept();
  14. //绑定至服务器端HTTP连接
  15. DefaultHttpServerConnectionconn=newDefaultHttpServerConnection();
  16. conn.bind(socket,params);
  17. //派送至WorkerThread处理请求
  18. Threadt=newWorkerThread(httpService,conn);
  19. t.setDaemon(true);//设为守护线程
  20. t.start();
  21. }
4 启动 Server 创建了个WebService,将WebServer套进去,实现Service方式。界面很简单,就一个按钮,启动如下:

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

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

用的jquery impromptu插件,相关css、js在assets/wfs目录内。CopyUtil提供了复制assets目录至系统目录的方法。 6 后记 前段时间开始看其他‘乱糟糟’的东西了。Android的小例子可能不太会再写了==。 超进化版传送门^^

本文出自 “-_--___---_-” 博客,请务必保留此出处http://vaero.blog.51cto.com/4350852/939413

附件下载:Android HttpServer

更多相关文章

  1. 浅谈Android(安卓)Surface机制
  2. Android实现CBC加解密
  3. Android的IPC机制Binder的详解汇总
  4. Android之网络请求7————OkHttp源码4:网络操作
  5. Android实现ListView异步加载图片
  6. android 神奇的android:clipChildren属性
  7. android View 重绘机制
  8. android 登陆、注册、并个指定用户充值
  9. Android(安卓)GPS架构分析

随机推荐

  1. Android 平台简介
  2. 详解Android电源管理API
  3. Android Broadcast广播机制初识
  4. android全平台编译ffmpeg支持命令行实践
  5. SVN服务器迁移
  6. 【Android】Handler机制源码解析
  7. Android开发手记一 NDK编程实例
  8. android启动时间
  9. android耗时任务_handler
  10. Android(安卓)面试题