萌萌妈妈 发表于 2015-1-14 21:16:36

带来一篇python xmlrpclib base64编码

小知识:CentOS完全遵守上游供应商的再发行政策,并且以百分之百的软件兼容性为目标。
在xmlrpclib中,必要传送二进制的数据,因而利用了BinaryObjects来打包,写了以下两个函数:
defencodebindata(data):
out=StringIO.StringIO()
bin=xmlrpclib.Binary()
bin.data=data
bin.encode(out)
data2=out.getvalue()
returndata2
defdecodebindata(data):
bin=xmlrpclib.Binary()
data1=bin.decode(data)
returnbin.data
在挪用decodebindata函数解码的时分,总是堕落,提醒”binascii.Error:incorrectpadding”之类的。看了一下xmlrpclib.py内里的Binary类界说:
defdecode(self,data):
self.data=base64.decodestring(data)
defencode(self,out):
out.write(”<value><base64>n”)
base64.encode(StringIO.StringIO(self.data),out)
out.write(”</base64></value>n”)
Binary的编解码实在用到的是base64的decodestring和encode,感到不太婚配,base64中,encode应当和decode配对,decodestring和encodestring配对。因而实验了一下间接利用base64来打包,不利用xmlrpclib的BinaryObjects。从头界说两个函数以下:
defencodebindata(data):
out=StringIO.StringIO()
bin=StringIO.StringIO(data)
base64.encode(bin,out)
data2=out.getvalue()
returndata2
defdecodebindata(data):
out=StringIO.StringIO()
bin=StringIO.StringIO(data)
base64.decode(bin,out)
data2=out.getvalue()
returndata2
经由测试,没有任何成绩了
xmlrpclib的BinaryObjects打包以后就是xml情势的数据了,能够间接传送了。不克不及打包以后当即解包。
from:http://blog.robotercoding.com/?cat=5&paged=2



小知识:社区支持的免费Linux发行版一般不会从商业支持中寻求什么好处,但对CentOS来说,这种情况即将改变。

谁可相欹 发表于 2015-1-17 09:14:13

最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。

海妖 发表于 2015-1-20 23:28:34

熟读写基础知识,学得会不如学得牢。

蒙在股里 发表于 2015-1-30 07:31:06

Linux?最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具,所以Linux操作系统有着广泛的应用空间。

爱飞 发表于 2015-2-6 08:59:39

了解Linux的网络安全,系统的安全,用户的安全等。安全对于每位用户,管理员来说是非常重要的。

灵魂腐蚀 发表于 2015-2-15 22:03:10

这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。

变相怪杰 发表于 2015-3-4 16:01:20

任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.

乐观 发表于 2015-3-11 20:33:59

linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!

老尸 发表于 2015-3-19 14:04:22

老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。

透明 发表于 2015-3-28 21:08:51

为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。?
页: [1]
查看完整版本: 带来一篇python xmlrpclib base64编码