基于http的protobuf服务实现

 

通常webapi实现通过http get/post请求,返回文本型的json,xml等字符串。本文以Tomcat8为web服务器,借助protobuf框架,响应二进制数据。

由于protobuf协议能跨语言,我们可以用java servlet实现服务端,C/C++实现客户端,达到各模块解耦目的。双方需设置ContentType为application/x-protobuf。

 

1. 准备proto文件

 

package qwd.kettas;

// 请求结构
message CTestReq
{
        optional uint32 ShopId = 1;   // 店铺ID
}

message CProduct
{
        optional uint32 Id = 1;      // 商品ID
        optional bytes Name = 2;     // 商品名称
        optional double price = 3;   // 商品价格
}

// 响应结构
message CTestResp
{
        optional int32 Total = 1;        // 商品总数
        repeated CProduct Product = 2;   // 商品数组
}

 

2. Java Servlet服务

 

/**
 * Servlet 服务实现,接收post请求,响应protocol buffer二进制数据
 */
protected void service( Http
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值