zoukankan      html  css  js  c++  java
  • Vertx 实现webapi实战项目(二)

     

    消息解析:消息序列化和反序列化---上传json解析和返回json编码。

    整理下工程项目

    一:实现消息接口,在imp文件夹下新建接口MessageFactory

    1 /******
    2  * 消息编码/解码
    3  * *******/
    4 public interface MessageFactory {
    5     void decode(short apiCode, JsonObject body, HttpServerRequest request);
    6 
    7     void encode();
    8 }
    View Code

    二:实现一个主类

     1 public abstract class AbstractMessage implements MessageFactory{
     2     protected JsonObject bodyData;
     3 
     4     protected short messageId = -1;
     5 
     6     //上传json解析
     7     @Override
     8     public void decode(short mId,JsonObject body, HttpServerRequest request){
     9         this.bodyData = body;
    10 
    11         messageId = mId;
    12 
    13         decodeMessage();
    14     }
    15 
    16     //返回json编码
    17     @Override
    18     public void encode(){
    19         encodeMessage();
    20     }
    21 
    22     protected abstract void decodeMessage();
    23 
    24     protected abstract void encodeMessage();
    25 
    26     public static JsonObject decodeUpMessage(Buffer body){
    27         if(body == null)
    28             return null;
    29 
    30         try {
    31             return body.toJsonObject();
    32         }catch (DecodeException es){
    33             return null;
    34         }
    35     }
    36 }
    View Code

    三:实现json解码和编码

     1 //上传json解码
     2 public abstract class AbstractUpMessage extends AbstractMessage{
     3     @Override
     4     protected void decodeMessage() {
     5         decodeBody();
     6     }
     7 
     8     @Override
     9     protected void encodeMessage() {}
    10 
    11     protected abstract void decodeBody();
    12 }
    View Code
     1 //返回json编码
     2 public abstract class AbstractDownMessage extends AbstractMessage  {
     3     protected int resultCode;
     4 
     5     public AbstractDownMessage(){
     6         bodyData = new JsonObject();
     7     }
     8 
     9     @Override
    10     protected void decodeMessage() {
    11 
    12     }
    13     @Override
    14     protected void encodeMessage(){
    15         bodyData.put("mId",messageId);
    16         bodyData.put("code",resultCode);
    17 
    18         encodeBody();
    19     }
    20 
    21     protected abstract void encodeBody();
    22 
    23     public String SendMessage (){
    24         return bodyData.encode();
    25     }
    26 }
    View Code

    到此消息解析完成

  • 相关阅读:
    从远程库克隆(转载)
    添加远程库(转载)
    远程仓库(转载)
    maven+hudson构建集成测试平台
    maven_基本配置
    crawler_基础之_httpclient 访问网络资源
    crawler_jsoup HTML解析器_使用选择器语法来查找元素
    oracle_job 清空冗余数据 ,每一分钟执行一次
    oracle_根据ID(字符型)建立分区表
    crawler_基础之_java.net.HttpURLConnection 访问网络资源
  • 原文地址:https://www.cnblogs.com/cj8988/p/15011029.html
Copyright © 2011-2022 走看看