protobuff 2.5 使用

1、下载 protobuf-2.5.0 jar 及代码生成工具。 在我的资源里已有

2、编写 Respond.proto 文件

package Respond;

option java_package = "com.zy.web.service.proto";
option java_outer_classname = "Respond";

message ReqMessage{
	
	required ReqHead  reqHead           = 1;  //信息请求头
	required ClientInfo clientInfo   = 2;  //客户信息
	required OptCode optCode         = 3;  //操作方式   1登录操作   2客户信息同步操作
}

message ReqHead{
	required string channelId        = 1;  //代理商渠道码
	required string screKey          = 2;  //加密串
}

message ClientInfo{
	required string accountNm  = 1;        //客户账户
	required string accountPwd = 2;        //账户密码
	required string companyNm  = 3;        //客户公司名称
	required string mobile     = 4;        //客户手机号
}

enum OptCode{
		LOGIN_CODE             = 1;         //登录操作
		SYC_CODE               = 2;         //信息同步操作
}

message ReqResp{
	required ResCode  resCd    = 1;        //接口响应码
	required string resDesc    = 2;        //响应描述
	required string accountNm  = 3;        //客户账号
	required string extend     = 9;        //扩展字段
	
	enum ResCode{
		 LOGIN_SUCCESS          = 1;       //登录成功
		 LOGIN_FAIL             = 2;       //登录失败
		 SYC_SUCCESS            = 3;       //信息同步成功
		 SYC_FAIL               = 4;       //信息同步失败
		 
		 OTHER_ERROR            = 9;       //其他错误
	}
}
这是我 们模拟 其他网站登录我们网站创建的 proto 对象关系 
这个文档 的编写规则 可以点http://wenku.baidu.com/link?url=GLTQVjjJL6Q4PJVNv3iDP2eDNDsbcVM4W6-s2sX8K06Y07eRuOn1tqVkd_ufcWB2m0cjoRJ4FwmD3wD2o3iGMMqe5UEwKF4YMwEAEoEW3Ua"进入查看

3、编写proto文件后,切换到命令提示行里  D:\技术资料\protobuf-2.5.0>protoc.exe --java_out=./ Respond.proto  ;执行生成java文件


4、将生成的java 文件拷贝到你的项目中,并把jar 放到项目中。


5、客户端代码

	ReqHead head = ReqHead.newBuilder().setChannelId("wujidao").setScretKey(MD5Util.md5Hex("123456")).build();
	String pwd = MD5Util.md5Hex("111111");
	ClientInfo client = ClientInfo.newBuilder().setAccountNm("quaxn02").setAccountPwd(pwd).setCompanyNm("科技").setMobile("18547554241").build();
    	
	ReqMessage build = ReqMessage.newBuilder().setReqHead(head).setClientInfo(client).setOptCode(OptCode.LOGIN_CODE).build();
    	
	byte[] data = build.toByteArray();
try {
	HttpURLConnection conn = PostData(data);
	InputStream in = conn.getInputStream();
	ByteArrayOutputStream bos = null;
	bos = new ByteArrayOutputStream();
	byte[] buf = new byte[1024];
	int r;
	while ((r = in.read(buf, 0, buf.length)) != -1) {
	bos.write(buf, 0, r);
}
	in.close();
	conn.disconnect();

} catch (Exception e) {
	e.printStackTrace();
}



6、服务器端代码

	ByteArrayOutputStream bos = new ByteArrayOutputStream();
	InputStream in = req.getInputStream();
	byte[] buf = new byte[1024];
	int r;
	while ((r = in.read(buf, 0, buf.length)) != -1) {
		bos.write(buf, 0, r);
	}
	ReqMessage reqs = ReqMessage.parseFrom(bos.toByteArray());
	ReqHead head = reqs.getReqHead();
	String channelId = head.getChannelId();


 







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值