我正在用python向返回AMF的web服务发出请求。我还不知道它是AMF0还是AMF3。
r = requests.post(url, data=data)
>>> r.text
u'\x00\x03...'(Full data here)
如何获取r.text并将其转换为python对象或类似对象?我找到了amfast,但它的Decoder类返回一个3.131513074181806e-294,假设AMF0和None用于AMF3。(两者都不正确)
from amfast.decoder import Decoder
decoder = Decoder(amf3=False)
obj = decoder.decode(StringIO.StringIO(r.text))发布于 2012-12-20 05:46:17
我发现您的代码有两个问题,第一个问题是使用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也可以。
发布于 2012-12-08 13:19:44
你有没有试过PyAMF。
from pyamf import remoting
remoting.decode(data)https://stackoverflow.com/questions/13774443
复制相似问题