繁体   English   中英

Python解码AMF响应

[英]Python decode AMF response

我在python中向一个返回AMF的Web服务发出请求。 我不知道它是AMF0还是AMF3。

r = requests.post(url, data=data)
>>> r.text
u'\x00\x03...'

这里的完整数据

如何获取r.text并将其转换为python对象或类似对象? 我发现amfast但它的Decoder类返回3.131513074181806e-294假设AMF0为AMF0而None (两者都不正确)

from amfast.decoder import Decoder
decoder = Decoder(amf3=False)
obj = decoder.decode(StringIO.StringIO(r.text))

你试过PyAMF吗?

from pyamf import remoting
remoting.decode(data)

我看到你的代码有两个问题,第一个是使用r.text来返回二进制数据。 请改用r.content 第二个问题是使用decoder.decode方法,它解码一个对象而不是数据包。 请改用decoder.decode_packet

from amfast.decoder import Decoder
decoder = Decoder(amf3=True)
obj = decoder.decode_packet(r.content)

使用Pyamf也可以使用r.content

暂无
暂无

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

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