Android利用Andserver搭建服务器的详细教程
时间:2022-07-26
本文章向大家介绍Android利用Andserver搭建服务器的详细教程,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
效果
需求
在手机上有一个功能,但是需要使用电脑控制什么时候开始这个功能,然后上网搜索,找到了AndServer可以满足要求,我只是实现了简单的功能,如果感兴趣的话,可以深入的研究一下。
地址如下:https://github.com/yanzhenjie/AndServer
1.步骤引入
implementation ‘com.yanzhenjie:andserver:1.0.2’
2.申请权限
<uses-permission android:name=”android.permission.INTERNET” /
3.初始化server
private void initServer() {
AssetManager assetManager = getAssets();
WebSite webSite = new AssetsWebsite(assetManager, "");
AndServer andServer = new AndServer.Build()
.website(webSite)
.timeout(30 * 1000)
.port(1234)
.registerHandler("login", new loginRequest())
.registerHandler("search",new searchRequest())
.listener(mListener)
.build();
server = andServer.createServer();
server.start();
}
4.主要代码
/**
* 监听事件
*/
private Server.Listener mListener = new Server.Listener() {
@Override
public void onStarted() {
Log.e(TAG, "onStarted: ");
tvTips.setText("服务启动成功");
}
@Override
public void onStopped() {
Log.e(TAG, "onStopped: ");
}
@Override
public void onError(Exception e) {
Log.e(TAG, "onError: " + e.getMessage());
tvTips.setText("服务启动失败:"+e.getMessage());
}
};
public class searchRequest implements RequestHandler{
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "拍照", Toast.LENGTH_SHORT).show();
}
});
StringEntity stringEntity = new StringEntity("拍照", "utf-8");
response.setEntity(stringEntity);
}
}
public class loginRequest implements RequestHandler {
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException {
Map<String, String params = HttpRequestParser.parse(request);
// Request params.
final String userName = params.get("name");
final String password = params.get("pwd");
//中文需要解码
final String userName1 = Uri.decode(userName);
final String password1 = Uri.decode(password);
Log.e(TAG, "handle: " + userName);
runOnUiThread(new Runnable() {
@Override
public void run() {
tvUsername.setText(userName1);
tvPwd.setText(password1);
}
});
StringBuilder sb = new StringBuilder();
sb.append("用户名:" + userName1);
sb.append("n");
sb.append("密码:" + password1);
StringEntity stringEntity = new StringEntity(sb.toString(), "utf-8");
response.setEntity(stringEntity);
}
}
总结
到此这篇关于Android利用Andserver搭建服务器的详细教程的文章就介绍到这了,更多相关android 搭建服务器内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!
- SQL Server 使用全文索引进行页面搜索
- HDU 1003 Max Sum【动态规划求最大子序列和详解 】
- HDU 1005 Number Sequence【多解,暴力打表,鸽巢原理】
- HDU 1019 Least Common Multiple【gcd+lcm+水+多个数的lcm】
- HDU 1017 A Mathematical Curiosity【水,坑】
- 比特币项目
- HDU 1014 Uniform Generator【GCD,水】
- 【AlphaGo Zero 核心技术-深度强化学习教程代码实战05】SARSA(λ)算法实现
- 区块链应用场景:物联网和物流供应链
- HDU 1012 u Calculate e【暴力打表,水】
- Gym 100952C&&2015 HIAST Collegiate Programming Contest C. Palindrome Again !!【字符串,模拟】
- HDU 1013 Digital Roots【字符串,水】
- Gym 100952I&&2015 HIAST Collegiate Programming Contest I. Mancala【模拟】
- bootstrap + requireJS+ director+ knockout + web API = 一个时髦的单页程序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android自带的四种线程池使用总结
- CentOS8.1搭建Gitlab服务器详细教程
- Android开发之图片旋转功能实现方法【基于Matrix】
- Android编程简单实现拨号器功能的方法
- win10 + Ubuntu20.04 LTS双系统引导界面美化
- Android开发从相册中选取照片的示例代码
- 详解Android WebView的input上传照片的兼容问题
- Ubuntu14.04安装、配置与卸载QT5的步骤详解
- CentOS 8 安装 MariaDB的详细教程
- Android中RecyclerView拖拽、侧删功能的实现代码
- Android单个RecyclerView实现列表嵌套的效果
- Android如何禁止向EditText控件中输入内容详解
- 小程序视角下同构方案思考
- Android基于自带的DownloadManager实现下载功能示例
- Linux服务器搭建nvidia-docker环境过程详解