返回信息流server端是用go写的,有个字段数据是个压缩文件,采用的[]byte类型,转成json后,传到agent端(用python写的),agent解出来是字符串,然后拿去解压,解压不了,这个可以怎么弄?
python用的2.7
server端大概这样conf[info.TmplDest] = []byte(info.Content)
然后json.Marshal(),之后传过去,到agent端成了这样的了
'config/zoo.cfg': 'dGlja1RpbWU9MjAwMAppbml0TGltaXQ9MTAKc3luY0xpbWl0PTUKZGF0YURpcj0vZGF0YS9yaXpoaXlpL3pvb2tlZXBlcgpkYXRhTG9nRGlyPS9kYXRhL3JpemhpeWkvem9va2VlcGVyCmNsaWVudFBvcnQ9MjE4MQptYXhDbGllbnRDbnhucz0xMDI0Cm1pblNlc3Npb25UaW1lb3V0PTEwMDAwCm1heFNlc3Npb25UaW1lb3V0PTYwMDAwCmF1dG9wdXJnZS5wdXJnZUludGVydmFsPTI0CmF1dG9wdXJnZS5zbmFwUmV0YWluQ291bnQ9NQpsZWFkZXJTZXJ2ZXM9eWVzCgoKc2VydmVyLjEwPTE5Mi4xNjguMS4xOTA6MzE4MTo0MTgxCg=='
按说这个字符串就来的二进制文件,怎么还原呢?
这是一条镜像帖。来源:北邮人论坛 / golang / #1774同步于 2020/4/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Golang机器人发帖
python程序与go程序之间通过json传二进制数据的问题?
tiaoji
2020/4/23镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 xxpxxxxp 的大作中提到: 】
: base64 decode
test= "dGlja1RpbWU9MjAwMAppbml0TGltaXQ9MTAKc3luY0xpbWl0PTUKZGF0YURpcj0vZGF0YS9yaXpoaXlpL3pvb2tlZXBlcgpkYXRhTG9nRGlyPS9kYXRhL3JpemhpeWkvem9va2VlcGVyCmNsaWVudFBvcnQ9MjE4MQptYXhDbGllbnRDbnhucz0xMDI0Cm1pblNlc3Npb25UaW1lb3V0PTEwMDAwCm1heFNlc3Npb25UaW1lb3V0PTYwMDAwCmF1dG9wdXJnZS5wdXJnZUludGVydmFsPTI0CmF1dG9wdXJnZS5zbmFwUmV0YWluQ291bnQ9NQpsZWFkZXJTZXJ2ZXM9eWVzCgoKc2VydmVyLjEwPTE5Mi4xNjguMS4xOTA6MzE4MTo0MTgxCg=="
print test
dest = test.decode('Base64')
print dest
//显示正常,谢谢!
其实最好去问做序列化的那个人
你这个能看出来只是因为后面用=结尾,极大可能是base64
下次服务端换个RSA加密不padding我不信这个论坛谁能看出来
所以还是多内部沟通吧
【 在 tiaoji 的大作中提到: 】
:
: test= "dGlja1RpbWU9MjAwMAppbml0TGltaXQ9MTAKc3luY0xpbWl0PTUKZGF0YURpcj0vZGF0YS9yaXpoaXlpL3pvb2tlZXBlcgpkYXRhTG9nRGlyPS9kYXRhL3JpemhpeWkvem9va2VlcGVyCmNsaWVudFBvcnQ9MjE4MQptYXhDbGllbnRDbnhucz0xMDI0Cm1pblNlc3Npb25UaW1lb3V0PTEwMDAwCm1heFNlc3Npb25UaW1lb3V0PTYwMDAwCmF1dG9wdXJnZS5wdXJnZUludGVydmFsPTI0CmF1dG9wdXJnZS5zbmFwUmV0YWluQ291bnQ9NQpsZWFkZXJTZXJ2ZXM9eWVzCgoKc2VydmVyLjEwPTE5Mi4xNjguMS4xOTA6MzE4MTo0MTgxCg=="
: print test
: ...................
【 在 xxpxxxxp 的大作中提到: 】
: 其实最好去问做序列化的那个人
: 你这个能看出来只是因为后面用=结尾,极大可能是base64
: 下次服务端换个RSA加密不padding我不信这个论坛谁能看出来
: ...................
服务器、客户端目前都是我在维护。。。之前用的avro这个库,可以直接传二进制数据,现在代码升级python3,avro升不上去,换json,json只能传int,long,string这类简单的,二进制数据需要转码。
兄弟你在维护你还不知道服务端怎么序列化的吗...
AND你现在这个路不正啊...
【 在 tiaoji 的大作中提到: 】
:
: 服务器、客户端目前都是我在维护。。。之前用的avro这个库,可以直接传二进制数据,现在代码升级python3,avro升不上去,换json,json只能传int,long,string这类简单的,二进制数据需要转码。
【 在 xxpxxxxp 的大作中提到: 】
: 兄弟你在维护你还不知道服务端怎么序列化的吗...
: AND你现在这个路不正啊...
:
go中[]byte类型在进行json.Marshal()函数时会使用Base64编码,这条从代码中不太好看出来,json包有很大一坨。
路不正怎么讲?业务需要什么做什么啊
哦我理解错了,挺好
【 在 tiaoji 的大作中提到: 】
:
: go中[]byte类型在进行json.Marshal()函数时会使用Base64编码,这条从代码中不太好看出来,json包有很大一坨。
: 路不正怎么讲?业务需要什么做什么啊