一 ProtoBuf介绍
1. ProtoBuf是什么?
Google Protocol Buffer(简称 Protobuf)是一种轻便高效的结构化数据存储格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。
2. 为什么要用ProtoBuf?
- 平台无关,语言无关,可扩展;
- 提供了友好的动态库,使用简单;
- 解析速度快,比对应的XML快约20-100倍;
- 序列化数据非常简洁、紧凑,与XML相比,其序列化之后的数据量约为1/3到1/10。
二 ProtoBuf客户端集成
1. 编译工具
使用protoc命令行工具将.proto文件编译成java文件。以下为GetAllMessageList.proto:
syntax = "proto3";
import "proto/usersnsservice/UserMessage.proto";
option java_package = "com.cmread.bplusc.presenter.model.message";
message GetAllMessageListRequest{
string startMessageID =1;//消息id
int32 start = 2;//分页开始位置(type=3时上传)
int32 count = 3;//分页数量
enum Type {
NONE = 0;
NOTICE = 1;//消息大类
INTERACT =2;//互动
PRIVATELETTER =3;//私信
}
Type type = 4;
enum ActionType {
NULL = 0;
UP = 1; // 上拉操作
DOWN = 2; // 下拉操作
ORDINARYLOAD = 3; // 普通加载
}
ActionType actionType = 5;
}
message GetAllMessageListResponse{
int32 totalRecordCount =1;//查询记录总条数
int32 noReadTotalCount =2;//未读消息总数
repeated UserMessage userMessageList =3;//消息列表
}
其中import “proto/usersnsservice/UserMessage.proto”;为包名,可以根据实际需要进行修改。此文件作为命令行的输入文件对应生成java源代码。
protoc3 proto\usersnsservice\GetAllMessageList.proto –java_out=.\
将GetAllMessageList.proto编译成GetAllMessageList .java文件,输出到当前目录。输出后个工具会自动根据指定包名建立一系列的目录。这个java文件就可以直接在程序中使用了。
另外,该工具还支持多种语言:
二 B/C统一身份验证(针对Hybride App应用)
B页面应该同时兼容新旧版本的验证方式。
新的B页面验证方式为:访问B页面时,要将C接口返回的Cookie值一并带上。该Cookie从响应头的“Set-Cookie”中获取。