首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用脚本收发 protobuf 协议数据

protobuf 上面的接口确实是基于二进制数据的协议,虽然是私有协议,但是采用了 protobuf 来进行规范,在提高性能的同时,也保留了一定的通用性。...毕竟那种方式太牛刀杀鸡了,下面演示一种使用 shell 脚本就能搞定 protobuf 协议的新方法。 pbjs 在介绍新方法之前,先介绍本文的主角 pbjs。...json,下面用上一节的二进制数据做个练手,假设数据已经保存在名为 response.bin 的文件: > pbjs msg.proto --decode ProbeIpv6Response < response.bin...jq 有了 json 数据就好办了,下面上 jq 提取设备 IP,假设已经将数据保存在了 response.json 文件中: > jq -r '.selfAddr.addrV6' probe_v6....至此 protobuf 二进制数据也不再是脚本不可触控的区域,有这方面接口测试需求的同学们快用起来吧 ~ 后记 使用基于 pbjs 的脚本在 android 设备上验证上述接口后,能正确返回结果,并且发现了几个小问题

16521
您找到你想要的搜索结果了吗?
是的
没有找到

【Android Protobuf 序列化】Protobuf 简介 ( Protobuf 项目简介 | Protobuf 优缺点分析 )

文章目录 一、Protobuf 简介 二、Protobuf 优缺点分析 1、Protobuf 优点 2、Protobuf 缺点 三、参考资料 一、Protobuf 简介 ---- Protobuf 是...Google 开源项目 , 该项目是序列化数据的一种解决方案 , JSON , XML 等也可以进行序列化数据操作 ; 序列化 : 将内存中的对象或数据 , 转为二进制数据 , 可存放或传输 ; 反序列化...: 将二进制数据 转为 内存中的对象或数据 ; Protobuf 使用场景 : 数据交换 : 从网络中下载数据 , 发送数据给服务器 ; 数据存储 : 获取或生成的数据 , 需要存储下来 ; Protobuf...语言特点 : Protobuf 包含一套 " 数据结构接口描述语言 " , 以及与之配套的 " 编译器 " , 利用 " 编译器 " 生成对应数据结构的不同编程语言的代码 , 如 Java , Python..., C++ 等 ; Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf Protobuf 当前支持的编程语言 , 平台 ; 一套 Protobuf

2.7K30

【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 使用文档 | 创建 Protobuf 源文件 | Protobuf 语法 )

文章目录 一、Protobuf 使用文档 二、创建 Protobuf 源文件 三、Protobuf 语法 四、参考资料 一、Protobuf 使用文档 ---- Protobuf Java 语言对应用法...字段值是枚举类型, 默认是 HOME 类型 optional PhoneType type = 2 [default = HOME]; } 集合 : 使用 repeated 修饰字段 , 表示重复的数据..., 即集合 ; // 表示重复的数据 , 即集合 // 有多个 PhoneNumber phones 组成的集合 repeated PhoneNumber phones = 4; 完整带注释的...= 1; // 字段值是枚举类型, 默认是 HOME 类型 optional PhoneType type = 2 [default = HOME]; } // 表示重复的数据.../docs/javatutorial Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf

97330

mysql 快速导入数据_MySQL导入数据

有时候需要批量插入一批数据数据库,有很多种办法,这里我用到过三种办法: 1、通过Excel直接生成insert语句 =CONCATENATE("insert into aisee_pingfen_fengcai...department,subject_n,teacher_name) values('",A1,"','",B1,"','",C1,"','",D1,"','",E1,"');") 参见:详情 2,通过直接导入...print("列数:") print(sheet.ncols) print("行数:") print(sheet.nrows) #获取当前表格的第k行(这里就要看k行是不是有数据了...,没数据的话,就会读取失败) #这种情况可以尝试读取,比如python中的try: except: 语句读取 #这个k需要提前自行指定 arrModel = sheet.row_values...#获取到数据就可以直接使用MySQLdb库调用插入语句进行数据插入操作了 4.pandas读取Excel文件,然后批量插入 在这里插入代码片 5.使用Navicat等工具,直接将excel导入数据

15.8K30

【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 源码分析 | 创建 Protobuf 对象 )

文章目录 一、Protobuf 源码分析 二、创建 Protobuf 对象 三、完整代码示例 四、参考资料 一、Protobuf 源码分析 ---- Protobuf 源文件如下 : addressbook.proto...= 1; // 字段值是枚举类型, 默认是 HOME 类型 optional PhoneType type = 2 [default = HOME]; } // 表示重复的数据...序列化】Protobuf 使用 ( protobuf-gradle-plugin 插件简介 | Android Studio 中配置插件 | AS 中编译源文件 ) 中 , 使用了 Gradle 插件...Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf Protobuf 发布版本下载地址 : https://github.com.../protocolbuffers/protobuf/releases protobuf-gradle-plugin 项目地址 : https://github.com/google/protobuf-gradle-plugin

68850

理解Protobuf数据编码规则

之前用Google的Protobuf感觉真是个很好用的东西,于是抽时间研究了下他的数据的存储方式,以后可以扩展其他语言的解析器。其实与其说是研究,不如说是翻译。...packed=true]),编码的结果里对一个标签编号存在0条或多条key-value结构,并且无需连续和不保证顺序 对于可选项,编码的结果里可能没有该标签编号的key-value结构 对于非可重复项的重复数据的处理方式...采用合并(Merge)操作,使用后面的值覆盖前面的值 带有[packed=true]选项的可重复项(type为2) 可重复项带有[packed=true]后,所有元素打成一个包,使用类似字符串的数据打包形式...8E 02 // 第二个元素 (varint 270) 9E A7 05 // 第三个元素 (varint 86942) 到这里就没了,by the way,一些SDK碰到不能识别的数据

1.2K10

ProtoBuf】1.初识ProtoBuf

而在本地中,内存中的结构化数据也就是对象只有序列化才能放到文件里面去,这个过程同样需要序列化。此外,数据库、缓存等传入传出同样涉及序列化。 所以什么是序列化和反序列化?...通过Json、XML、ProtoBuf可以实现序列化。(本文讲的就是ProtoBuf) 二. ProtoBuf 1. 什么是ProtoBuf ProtoBuf概念:将结构化数据进行序列化的一种方式。...ProtoBuf的特点 简单来讲,ProtoBuf(全称为Protocol Buffer)是让结构数据序列化的⽅法。 一....扩展性、兼容性好:你可以更新数据结构,⽽不影响和破坏原有的旧程序。 二. 使用特点: ProtoBuf是需要依赖 通过编译生成的头文件和源文件 来使用的。...ProtoBuf进行序列化反序列化的流程 在ProtoBuf中,将类(class)称之为消息(message) 依赖通过编译生成的头文件和源文件实际上就是通过message XXX生成class XXX

16440

【Android Protobuf 序列化】Protobuf 使用 ( Protobuf 序列化 | Protobuf 反序列化 )

文章目录 一、Protobuf 序列化 二、Protobuf 反序列化 三、完整代码 四、参考资料 一、Protobuf 序列化 ---- 在上一篇博客 【Android Protobuf 序列化】Protobuf...使用 ( Protobuf 源码分析 | 创建 Protobuf 对象 ) 中 , 创建了 Protobuf 对象 , 本博客中将其序列化 , 保存到本地文件中 ; 序列化操作 : 调用 Protobuf...I/MainActivity: 序列化耗时 4 ms , 序列化大小 34 字节 二、Protobuf 反序列化 ---- 反序列化操作 : 调用 Protobuf 对象的 parseFrom 方法...Protobuf 语法指南 : https://developers.google.com/protocol-buffers/docs/proto Protobuf Java 语言对应用法.../protocol-buffers/docs/downloads Protobuf 源码地址 : https://github.com/protocolbuffers/protobuf Protobuf

67140

protobuf介绍

Protobuf介绍什么是ProtobufProtobuf,全称为Protocol Buffers,是Google开发的一种轻量级的数据交换格式。...Protobuf使用二进制格式进行数据的序列化和反序列化,这种格式更加紧凑,占用的存储空间更小,传输速度更快。可扩展性和兼容性Protobuf支持数据结构的向前和向后兼容。...当需要读取数据时,可以使用Protobuf将二进制数据反序列化为学生和班级对象,方便进行数据操作和展示。 通过使用Protobuf,可以简化数据的存储和传输过程,提高系统的性能和可靠性。...通过使用Protobuf,开发人员可以更轻松地定义和处理复杂的数据结构,并在不同的平台和语言之间进行数据交换。虽然Protobuf在许多方面都有很多优点,但它也有一些缺点。...下面是Protobuf的一些缺点以及类似的其他数据交换格式:可读性差:Protobuf使用二进制格式进行数据序列化,这使得数据在传输和存储时更加紧凑和高效,但也导致了数据的可读性较差。

21400

Python+fiddler模拟Protobuf数据容错

前言 在客户端和服务端数据传输交换中经常使用的技术是 JSON 或 XML,而小编最近在项目中接触到了一种新的数据传输框架——Protobuf,接下来我们就正式学习一下吧。...fiddler构造Protobuf数据响应 在测试中,经常需要做响应数据的容错,对于json格式的响应数据,大家都知道怎么做。但是对于Protobuf数据响应如何做数据容错呢?...使用方法 上述步骤完成后,我们打开fiddler,就可以看到在Inspectors下出现Protobuf字段了,接下来我们就可以触发并查看数据流为Protobuf请求了,不会再是一堆二进制格式数据了;...fiddler构造Protobuf数据响应 在测试中,经常需要做响应数据的容错,对于json格式的响应数据,大家都知道怎么做。但是对于Protobuf数据响应如何做数据容错呢?...install 5、查看protobuf-python是否安装成功 protoc --version 实现脚本 1、将需要修改的proto文件(服务端响应的protobuf格式数据)转换为python

1.8K50

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券