繁体   English   中英

在python中解码Java对象

[英]Decoding java objects in python

是否可以在python中解码Java对象? 我知道返回数据的java类的结构。 返回的数据带有“ Transfer-Encoding:chunked”的标题

还是我需要获取以xml / json格式发送的返回数据?

这是我得到回应的一个例子。 (请注意,某些控制字符会通过粘贴删除)

 -- response --
200 OK
Server:  Apache-Coyote/1.1
Transfer-Encoding:  chunked
Date:  Tue, 22 Nov 2011 13:24:41 GMT
��srjava.util.ArrayListx����a�IsizexpGwXsr,com.blah.blah.data.ClientInfos����8d�LdbNametLjava/lang/String;Ldescriptionq~xptdbname1t Customername1q~tdbname2tCustomername2sq~t

本示例以客户端数据库名称的格式返回两个客户端

dbname1,customername1

dbname2,customername2

---随着更多详细信息的出现而进行编辑-

此HTTP响应的内容是序列化的Java对象。

Java序列化是一个过程,通过该过程可将内存中的对象打包为便于传输的字节,以供另一个JVM读取。 简而言之,您需要阅读序列化格式。 假设他们没有添加自定义序列化程序, 则此处记录了实际的协议

剩下的只是确保您对数据字段进行了明智的Java到Python的映射。 如果要支持“往返”数据处理,则应将有时丢弃的“ java信息”缓存在数据结构的特殊“区域”中,以便可以序列化回相同的java构造。

---原始帖子如下-

您正在分解一个类(这很容易做到,因为Java具有非常严格的类结构,并且易于将字节码反向转换为源代码映射),或者您正在处理数据。

如果它正在处理数据,那么您实际上并没有真正解码Java,而执行所需操作的难易程度在很大程度上取决于收集有关如何编码数据的知识的能力。 由于您提到了“ Transfer-Encoding:Chunked”标头,所以我猜您正在读取HTTP响应(包含标头)。

由于Web服务的普及,几乎每种语言都有一个库来处理HTTP响应。 Python已经有一个HTTP客户端,如此处所示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM