不在赘述什么是androIDasync 有兴趣的话可以自己百度搜索一下
直接贴上代码 每个方法都有注释
import androID.content.Context;import androID.Widget.Toast;import com.koushikdutta.async.http.server.AsynchttpServer;import com.koushikdutta.async.http.server.AsynchttpServerRequest;import com.koushikdutta.async.http.server.AsynchttpServerResponse;import com.koushikdutta.async.http.server.httpServerRequestCallback;import org.Json.JsONException;import org.Json.JsONObject;import cn.zjq.helpinstall.utils.InstallApkUtils;/** * @Description: httpServer简单使用 * @Author: zjq * @CreateDate: 2020/12/18 15:43 */public class TesthttpServer implements httpServerRequestCallback { AsynchttpServer mServer = new AsynchttpServer(); private Context context; private static TesthttpServer testhttpServer; public static TesthttpServer getInstance() { if (testhttpServer == null) { synchronized (TesthttpServer.class) { if (testhttpServer == null) { testhttpServer = new TesthttpServer(); } } } return testhttpServer; } /** * 初始化server * * @param context */ public voID initServer(Context context) { this.context = context; } /** * 启动服务 * 9000为监听的端口号 */ public voID start() { Toast.makeText(context, "启动服务成功", Toast.LENGTH_SHORT).show(); mServer.Listen(9000); mServer.get("/install", this); mServer.post("/install", this); } /** * 实现 httpServerRequestCallback接口方法 * * @param request * @param response */ @OverrIDe public voID onRequest(AsynchttpServerRequest request, AsynchttpServerResponse response) { String method = request.getmethod(); if ("GET".equalsIgnoreCase(method)) { dogetmethod(request, response); } else if ("POST".equalsIgnoreCase(method)) { doPostMethod(request, response); } } /** * 处理POST请求的方法 * * @param request 请求 * @param response 响应 */ private voID doPostMethod(AsynchttpServerRequest request, AsynchttpServerResponse response) { } /** * 处理GET请求的方法 监听请求install接口 * * @param request * @param response */ private voID dogetmethod(AsynchttpServerRequest request, AsynchttpServerResponse response) { if ("/install".equalsIgnoreCase(request.getPath())) { handleDevicesRequest(response); } else { handleInvalIDRequest(response); } } /** * 处理无效的请求 * * @param response */ private voID handleInvalIDRequest(AsynchttpServerResponse response) { try { JsONObject Json = new JsONObject(); try { Json.put("error", "InvalID API"); response.send(Json); } catch (JsONException e) { e.printstacktrace(); } } catch (Exception e) { e.printstacktrace(); } } /** * 响应设备有效的请求 * * @param response */ private voID handleDevicesRequest(AsynchttpServerResponse response) { //此处InstallApkUtils为本地工具类,可忽略 InstallApkUtils instance = InstallApkUtils.getInstance(); instance.initInstall(context); String result = instance.installApkMethod(); try { JsONObject JsonObject = new JsONObject(); JsonObject.put("code", "200"); JsonObject.put("err", "null"); JsonObject.put("msg", result); response.send(JsonObject); } catch (Exception e) { e.printstacktrace(); } }}
测试方法
1.AS运行此程序到手机
2.手机和电脑连接至统一wifi
3.在浏览器中输入相对应的手机ip地址与相应端口
如下 我的手机ip地址为192.168.3.1 浏览器中输入
192.168.3.1:9000/install
成功即可返回对应Json
调用方法
TesthttpServer instance = TesthttpServer.getInstance();instance.initServer(YibaService.this);instance.start();
总结
以上是内存溢出为你收集整理的android 本地server androidasync依赖库的简单使用全部内容,希望文章能够帮你解决android 本地server androidasync依赖库的简单使用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)