Python 解码 AMF 响应



我正在用python向返回AMF的Web服务发出请求。我还不知道是AMF0还是AMF3。

r = requests.post(url, data=data)
>>> r.text
u'x00x03...'

(完整数据在这里)

如何获取r.text并将其转换为 python 对象或类似对象?我发现 amfast,但它Decoder类返回一个3.131513074181806e-294假设 AMF0 和 AMF3 None。(均不正确)

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

我看到你的代码有两个问题,第一个是使用 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 .

你试过PyAMF。

from pyamf import remoting
remoting.decode(data)

最新更新