本文主要讲述如何使用Python发送protobuf数据。

安装protobuf

tar zxvf protobuf-2.6..tar.gz
cd protobuf-2.6.
./configure
make
make install

安装成功。

// 查看protoc版本
protoc --version

python安装protobuf

cd protobuf-2.6./python
python setup.py build
python setup.py install

环境搭建完毕,下面给个demo。

创建my_bidding.proto

package tutorial;

message Person {
required string name = ;
optional int32 age = ;
repeated BankCard bankcard = ;
message BankCard {
required string id = ;
}
optional RealEstate estate = ;
message RealEstate {
required string address = ;
optional int32 value = ;
}
optional bool isSingle = ;
optional SexualOrientation orientation = ;
enum SexualOrientation {
ManOnly = ;
WomanOnly = ;
BiSexual = ;
}
}

编译proto文件

protoc -I=. --python_out=. ./my_bidding.proto

编译成功,会产生my_bidding_pb2.py。

编写Python脚本

# python2
# coding = utf-8 import my_bidding_pb2
import httplib person = my_bidding_pb2.Person()
person.name = 'logan'
person.age = 25
person.isSingle = False
person.orientation = 3 bankcard1 = person.bankcard.add()
bankcard1.id = '' bankcard2 = person.bankcard.add()
bankcard2.id = '' real_estate = person.estate
real_estate.address = 'beijing'
real_estate.value = 1000 print person data = person.SerializeToString() CONTENT_TYPE = "application/octet-stream"
CONTENT_TYPE_HEADER = "Content-type" conn = httplib.HTTPConnection('sever_host', 'server_port')
conn.request('POST', 'server_path', data,
{CONTENT_TYPE_HEADER: CONTENT_TYPE})
response = conn.getresponse() print response
print response.status
print response.read()

python post protobuf的更多相关文章

  1. python读写protobuf

    0.     前期准备 官方protobuf定义 https://code.google.com/p/protobuf/   python使用指南 https://developers.google. ...

  2. python 处理protobuf协议

    背景:需要用django基于python3模拟一个http接口,请求是post方式,body是protobuf string,返回也是protobuf string 设计:django获取pb str ...

  3. Python使用Protobuf&&如何赋值&&如何正反序列化

    前言 使用protobuf主要是两个步骤,序列化和反序列化. 关于Proto有哪些数据类型,然后如何编写,此处就不赘述了,百度一下有很多. 此文主要是总结,python使用protobuf的过程,如何 ...

  4. python 处理protobuf 接口常见错误

    python 处理protobuf 接口常见错误 1.问题 : Assignment not allowed to repeated field '> http://www.coin163.co ...

  5. python通过protobuf实现rpc

    由于项目组现在用的rpc是基于google protobuf rpc协议实现的,所以花了点时间了解下protobuf rpc.rpc对于做分布式系统的人来说肯定不陌生,对于rpc不了解的童鞋可以自行g ...

  6. python版protobuf 安装

    转自:http://www.tuicool.com/articles/VfQfM3 1. 下载protobuf源代码(当前最新版本为:2.5.0) #cd /opt #wget https://pro ...

  7. python 安装protobuf

    安装准备:python和protoc(编译proto到各个语言) 下载protobuf源代码(各种语言实现):https://github.com/google/protobuf  1.到Python ...

  8. mac环境使用python处理protobuf

    安装 brew install protobuf 然后再安装protobuf需要的依赖 brew install autoconf automake libtool 验证是否安装成功 protoc – ...

  9. protobuf python api

    摘要: python中一切都可以看作类.那么如何查看每个类的API.使用ipython python  protobuf 的函数在message中定义 此处所有的api说明:https://devel ...

随机推荐

  1. 会话技术(session/cookie)

    session可保存int double bool array string object:cookie只能保存stringsession 可通过php.ini文件查看存放的位置:cookie不同浏览 ...

  2. hadoop(八)集群namenode启动ssh免密登录(完全分布式五)|10

    前置章节:hadoop集群配置同步(hadoop完全分布式四)|10 启动namenode之前: 1. 先查看有无节点启动,执行jps查看,有的话停掉 [shaozhiqi@hadoop102 ~]$ ...

  3. 15-场景中用到的资源监视器(perfmon metrics collector)

    JMeter 无法提取除 Tomcat 之外的其他服务器的指标,因此PerfMon Metrics Collector可用来获取性能数据. PerfMon Metrics Collector使用的是S ...

  4. 萌新带你开车上p站(Ⅳ)

    本文作者:萌新 前情回顾: 萌新带你开车上p站(一) 萌新带你开车上p站(二) 萌新带你开车上P站(三) 回顾一下前篇,我们开始新的内容吧 0x12 登录后看源码 通读程序,逻辑是这样子的: 输入6个 ...

  5. 【学习笔记】Iperf3网络性能测试工具

    [学习笔记]Iperf3网络性能测试工具 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性能的基础,但是由于网络设计不合理.网络存在安全漏洞等原因,都会导致网络带宽利用率不高. ...

  6. 浅谈ArrayList

    浅谈ArrayList 废话不多说(事实是不会说),让我们直接进入正题 首先讲一讲最基本的ArrayList的初始化,也就是我们常说的构造函数,ArrayList给我们提供了三种构造方式,我们逐个来查 ...

  7. C - Mind Control CodeForces - 1291C

    菜到家了,题意都读不懂. 题目大意: 总共有n个人和n个数字 n个人拍成一队,n个数字也是有顺序的 你排在第m个位置 按照顺序的每个人可以拿走这个序列中的第一个数字或者最后一个数字 你可以在所有人操作 ...

  8. python成语接龙小游戏

    上一篇讲了小游戏的坑现在把源码放出来 #coding:utf-8 import string import pypinyin import sys import random print(" ...

  9. frame/iframe多表单切换

    应用场景: 在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位.这时就 ...

  10. eclipse 集成git工具

    1.eclipse git插件下载 打开Eclipse,然后点击Help>Install New Software>Add name:git location:http://downloa ...