我有一个用 Adobe Flex 3 和 Python 2.5 开发的网络应用程序(部署在 Google App Engine 上)。已在 Python 中创建了一个 RESTful Web 服务,其结果当前为 XML 格式,Flex 正在使用 HttpService 对象读取该格式。
现在的主要目标是压缩 XML,以减少 HttpService send() 方法和结果事件之间的时间。我查阅了 Python 文档并设法使用 zlib.compress() 来压缩 XML 结果。
然后我将 HttpService 结果类型从“xml”设置为“text”,并尝试使用 ByteArrays 将字符串解压缩回 XML。这就是我失败的地方。我正在做这样的事情:
var byteArray:ByteArray = new ByteArray();
byteArray.writeUTF( event.result.toString() );
byteArray.uncompress();
var xmlResult:XML = byteArray.readUTF();
它在 byteArray.uncompress() 抛出异常并说无法解压缩 byteArray。此外,当我跟踪 byteArray 的长度时,它得到 0。
无法弄清楚我做错了什么。感谢所有帮助。
- 编辑 -
编码:
# compressing the xml result in Python
print zlib.compress(xmlResult)
# decompresisng it in AS3
var byteArray:ByteArray = new ByteArray();
byteArray.writeUTF( event.result.toString() );
byteArray.uncompress()
事件的类型为 ResultEvent。
错误:
错误:错误 #2058:解压缩数据时出错。
该错误可能是因为 byteArray.bytesAvailable = 0 的值,这意味着 python 生成的原始字节尚未正确写入 byteArray。
——斯里