在Android中实现一个简易的Http服务器
在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服务器相关推荐
- Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能。(ArrayList,SQLite)
Android 中编写一个简易购物车,商品包括商品名称,单价,数量,可以对商品进行增删改查功能.(ArrayList,SQLite) 布局(activity_main.xml): <?xml v ...
- android sqlite自定义函数,Android中自定义一个View的方法详解
本文实例讲述了Android中自定义一个View的方法.分享给大家供大家参考,具体如下: Android中自定义View的实现比较简单,无非就是继承父类,然后重载方法,即便如此,在实际编码中难免会遇到 ...
- 让一个图片填满一个控件_如何在Android中实现一个全景图控件(二)
一.背景 在 如何在Android中实现一个全景图控件(一)中,介绍了项目的一些基本情况(有 demo 演示),如果项目对你有帮助,希望文章赏个赞,项目 star 一下. 项目地址:https://g ...
- android 浮动文字提示,怎么在Android中实现一个自由拖动并显示文字的悬浮框
怎么在Android中实现一个自由拖动并显示文字的悬浮框 发布时间:2021-01-27 15:34:05 来源:亿速云 阅读:107 作者:Leah 今天就跟大家聊聊有关怎么在Android中实现一 ...
- 10分钟手把手教你用Android手撸一个简易的个人记账App
用Android手撸一个简易的个人记账系统 ⛱️序言
- android 轮换实现动画,怎么在Android中实现一个首页无限轮播功能
怎么在Android中实现一个首页无限轮播功能 发布时间:2021-04-12 16:22:49 来源:亿速云 阅读:74 作者:Leah 这期内容当中小编将会给大家带来有关怎么在Android中实现 ...
- android中bmob云存储,Android中的Bmob移动后端云服务器功能
PS:一般情况下,我们在写android程序的时候,想要实现登录注册功能,可以选择自己用servlet作为服务端来实现过滤没有注册过的用户,但是太麻烦,而且不是随时都可以用的.这里介绍一个移动后端云服 ...
- 快速搭建一个简易的HTTP服务器用于文件分享与下载
需要快速搭建一个简易的HTTP服务器进行文件的分享与下载.主要有以下两种方法: 1. 使用python 来实现 import http.server import socketserverPORT = ...
- 【Android】制作一个简易的画板
前言 本文介绍使用Canvas.Paint.Path等原生API,实现一个简易的画板. 绘图原理 Paint Paint可以理解为我们现实中的画笔,在使用前我们需要对Paint进行初始化,比如颜色.画 ...
- [Android]自定义绘制一个简易的音频条形图,附上对MP3音频波形数据的采集与展现
在项目中需要到数据统计的地方,往往都需要到一些图的展示,比如曲线图.折线图.饼状图.圆形图.条形图等等.在本文中我们来实现一个简易的条形图的绘制. 首先,我们创建一个BarGraphView类 ...
最新文章
- 脉冲神经网络在目标检测的首次尝试,性能堪比CNN | AAAI 2020
- D - Silver Cow Party POJ - 3268
- C++中内存分配、函数调用和返回值问题
- 【数据】深度学习从“数据集”开始
- Java中使用Jedis连接Redis对Set进行操作的常用命令
- elasticsearch按照配置时遇到的一些坑 [Failed to load settings from [elasticsearch.yml]]
- Linux C 算法与数据结构 --二叉树
- LeetCode 2103. 环和杆(位运算)
- LeetCode 2095. 删除链表的中间节点(快慢指针)
- 终于换了杀毒工具(NOD32教育网升级)
- 201671030113 李星宇 《英文文本统计分析》结对项目报告
- 某国产下载神器又出事了:前 CEO 已被公安局立案侦查!
- Product Key Algorithm
- 2017年6月14日中午 java.io.IOException: Premature EOF
- 视频分辨率过高,导致部分手机播放失败
- 请教淘宝API sign签名问题,望高人指点!谢谢!
- 这么简单的道理,猩猩都懂,我们却忘了
- emv交易流程介绍,简易波动指标EMV基础知识介绍:EMV的计算公式_EMV应用法则
- 金蝶K3 SQL报表系列-委外未勾稽明细表
- 风险准备(金)这样(估)算,来年工作不白干