I'm making a request in python to a web service which returns AMF. I don't know if it's AMF0 or AMF3 yet.
r = requests.post(url, data=data)
>>> r.text
u'\x00\x03...'
( Full data here )
How can I take r.text
and convert it to a python object or similar? I found amfast but it's Decoder
class returns a 3.131513074181806e-294
assuming AMF0 and None
for AMF3. (Both incorrect)
from amfast.decoder import Decoder
decoder = Decoder(amf3=False)
obj = decoder.decode(StringIO.StringIO(r.text))
have u tried PyAMF.
from pyamf import remoting
remoting.decode(data)
I see two problems with your code, the first is using r.text
to return binary data. Use r.content
instead. The second problem is using decoder.decode
method, which decodes one object and not a packet. Use decoder.decode_packet
instead.
from amfast.decoder import Decoder
decoder = Decoder(amf3=True)
obj = decoder.decode_packet(r.content)
Using Pyamf works as well, using r.content
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.