安卓程序作为web服务端的技术实现:AndServer 实现登录权限拦截 ...

打印 上一主题 下一主题

主题 1015|帖子 1015|积分 3045

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
AndServer官方地点:入门 · GitBook
1.在安卓项目标两个build.grade中添加相关依赖:


2.目次结构:

以我写的顺序去举行理解:
起首创建一个server的管理类:举行初始化,启动,停止利用等
  1. import android.content.Context;
  2. import android.util.Log;
  3. import com.yanzhenjie.andserver.AndServer;
  4. import com.yanzhenjie.andserver.Server;
  5. import java.util.concurrent.TimeUnit;
  6. public class ServerManager {
  7.     private Server mServer;
  8.     private static ServerManager instance;
  9.     private ServerManager(Context context) {
  10.         mServer = AndServer.webServer(context)
  11.                 .port(8080)
  12.                 .timeout(10, TimeUnit.SECONDS)
  13.                 .listener(new Server.ServerListener() {
  14.                     @Override
  15.                     public void onStarted() {
  16.                         // TODO The server started successfully.
  17.                     }
  18.                     @Override
  19.                     public void onStopped() {
  20.                         // TODO The server has stopped.
  21.                     }
  22.                     @Override
  23.                     public void onException(Exception e) {
  24.                         // TODO An exception occurred while the server was starting.
  25.                     }
  26.                 })
  27.                 .build();
  28.     }
  29.     public static ServerManager getInstance(Context context) {
  30.         if (instance == null) {
  31.             instance = new ServerManager(context);
  32.         }
  33.         return instance;
  34.     }
  35.     public void startServer() {
  36.         if (mServer.isRunning()) {
  37.             // TODO The server is already up.
  38.         } else {
  39.             mServer.startup();
  40.         }
  41.     }
  42.     public void stopServer() {
  43.         if (mServer.isRunning()) {
  44.             mServer.shutdown();
  45.         } else {
  46.             Log.w("AndServer", "The server has not started yet.");
  47.         }
  48.     }
  49. }
复制代码
在mainactivity中增加启动代码:

其实这个时候运行到真机或者模拟机上时就已经启动了,为了方便测试,增加几个测试接口:
 
  1. @RestController
  2. @RequestMapping(path = "/api")
  3. public class TestController {
  4.     @GetMapping("/user/get")
  5.     public String test(@RequestParam("id") String id) {
  6.         return "id = " + id;
  7.     }
  8. }
复制代码
通过浏览器访问安卓设备的IP:8080/api/user/get?id=1会看到浏览器出现id=1的字样
设置web网站的目次:
  1. @Config
  2. public class AppConfig implements WebConfig {
  3.     @Override
  4.     public void onConfig(Context context, Delegate delegate) {
  5.         // 增加一个位于assets的web目录的网站
  6.         delegate.addWebsite(new AssetsWebsite(context, "/web/"));
  7.     }
  8. }
复制代码
如许网页就被映射到assets下的web目次中:

可以通过page去测试:
  1. @Controller
  2. public class PageController {
  3.     @GetMapping("/")
  4.     public String index() {
  5.         return "forward:/index.html";
  6.     }
  7.     @GetMapping("/page")
  8.     public String page() {
  9.         return "forward:/page.html";
  10.     }
  11. }
复制代码
访问根目次:

访问page:

启动已经
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表