在Android中创建http服务器

最近遇到一个需求需要在App中创建一个Http服务器供供浏览器调用,用了下开源的微型Htpp服务器框架:NanoHttpd,项目地址:https://github.com/NanoHttpd/...

直接上代码

public class HttpServer extends NanoHTTPD {public HttpServer(int port) {super(port);}@Overridepublic Response serve(IHTTPSession session) {HashMap<String, String> files = new HashMap<>();Method method = session.getMethod();if (Method.POST.equals(method)) {try {//notice:If the post with body data, it needs parses the body,or it can't get the body data;session.parseBody(files);}catch (IOException e) {return  newFixedLengthResponse(Response.Status.INTERNAL_ERROR, MIME_PLAINTEXT,"SERVER INTERNAL ERROR: IOException: " + e.getMessage());}catch (ResponseException e) {return newFixedLengthResponse(e.getStatus(), MIME_PLAINTEXT, e.getMessage());}}final String postData = files.get("postData");String transJson = Transmit.getInstance().getAuthoriseData(postData);return newFixedLengthResponse(transJson);}

使用起来可以说是很简单了,session参数包含了请求的各种信息,这里显示获取了请求方法,因为我们的项目中暂时只用post(demo),所以只针对post请求做了处理,get的处理会更简单。因为post请求中带有body,所以需要先声明一个HashMap,将body中的键值对取出来。这里我们把请求过来的json数据映射到了"postData",然后从通过"

final String postData = files.get("postData");

这行代码将其取出来.session还有getParams(),getCookies(),getHeaders()等方法,看名字就可以知道功能了。至此一个简单的Http服务器就出来了,通常把它放在一个service中等待请求。

在Android中实现一个简易的Http服务器相关推荐

  1. Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能。(ArrayList,SQLite)

    Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能.(ArrayList,SQLite) 布局(activity_main.xml): <?xml v ...

  2. android sqlite自定义函数,Android中自定义一个View的方法详解

    本文实例讲述了Android中自定义一个View的方法.分享给大家供大家参考,具体如下: Android中自定义View的实现比较简单,无非就是继承父类,然后重载方法,即便如此,在实际编码中难免会遇到 ...

  3. 让一个图片填满一个控件_如何在Android中实现一个全景图控件(二)

    一.背景 在 如何在Android中实现一个全景图控件(一)中,介绍了项目的一些基本情况(有 demo 演示),如果项目对你有帮助,希望文章赏个赞,项目 star 一下. 项目地址:https://g ...

  4. android 浮动文字提示,怎么在Android中实现一个自由拖动并显示文字的悬浮框

    怎么在Android中实现一个自由拖动并显示文字的悬浮框 发布时间:2021-01-27 15:34:05 来源:亿速云 阅读:107 作者:Leah 今天就跟大家聊聊有关怎么在Android中实现一 ...

  5. 10分钟手把手教你用Android手撸一个简易的个人记账App

    用Android手撸一个简易的个人记账系统 ⛱️序言

  6. android 轮换实现动画,怎么在Android中实现一个首页无限轮播功能

    怎么在Android中实现一个首页无限轮播功能 发布时间:2021-04-12 16:22:49 来源:亿速云 阅读:74 作者:Leah 这期内容当中小编将会给大家带来有关怎么在Android中实现 ...

  7. android中bmob云存储,Android中的Bmob移动后端云服务器功能

    PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己用servlet作为服务端来实现过滤没有注册过的用户,但是太麻烦,而且不是随时都可以用的.这里介绍一个移动后端云服 ...

  8. 快速搭建一个简易的HTTP服务器用于文件分享与下载

    需要快速搭建一个简易的HTTP服务器进行文件的分享与下载.主要有以下两种方法: 1. 使用python 来实现 import http.server import socketserverPORT = ...

  9. 【Android】制作一个简易的画板

    前言 本文介绍使用Canvas.Paint.Path等原生API,实现一个简易的画板. 绘图原理 Paint Paint可以理解为我们现实中的画笔,在使用前我们需要对Paint进行初始化,比如颜色.画 ...

  10. [Android]自定义绘制一个简易的音频条形图,附上对MP3音频波形数据的采集与展现

      在项目中需要到数据统计的地方,往往都需要到一些图的展示,比如曲线图.折线图.饼状图.圆形图.条形图等等.在本文中我们来实现一个简易的条形图的绘制.   首先,我们创建一个BarGraphView类 ...

最新文章

  1. 脉冲神经网络在目标检测的首次尝试,性能堪比CNN | AAAI 2020
  2. D - Silver Cow Party POJ - 3268
  3. C++中内存分配、函数调用和返回值问题
  4. 【数据】深度学习从“数据集”开始
  5. Java中使用Jedis连接Redis对Set进行操作的常用命令
  6. elasticsearch按照配置时遇到的一些坑 [Failed to load settings from [elasticsearch.yml]]
  7. Linux C 算法与数据结构 --二叉树
  8. LeetCode 2103. 环和杆(位运算)
  9. LeetCode 2095. 删除链表的中间节点(快慢指针)
  10. 终于换了杀毒工具(NOD32教育网升级)
  11. 201671030113 李星宇 《英文文本统计分析》结对项目报告
  12. 某国产下载神器又出事了:前 CEO 已被公安局立案侦查!
  13. Product Key Algorithm
  14. 2017年6月14日中午 java.io.IOException: Premature EOF
  15. 视频分辨率过高,导致部分手机播放失败
  16. 请教淘宝API sign签名问题,望高人指点!谢谢!
  17. 这么简单的道理,猩猩都懂,我们却忘了
  18. emv交易流程介绍,简易波动指标EMV基础知识介绍:EMV的计算公式_EMV应用法则
  19. 金蝶K3 SQL报表系列-委外未勾稽明细表
  20. 风险准备(金)这样(估)算,来年工作不白干

热门文章

  1. @@Autowired依赖注入先后顺序
  2. 异常为当IDENTITY_INSERT设置为OFF时 解决办法
  3. JavaScript开发心得--如何传递某行数据给下一页
  4. centOS 安装远程桌面
  5. abstract 抽象类
  6. vuex的store机制1
  7. springboot的Interceptor、Filter、Listener及注册
  8. SQL之EXISTS用法示例
  9. [Hive]-Table
  10. Android源码分析之Builder模式