2

AMF を返す Web サービスに Python でリクエストを送信しています。AMF0かAMF3かはまだわかりません。

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

(全データはこちら)

どうすればそれを取得r.textしてpythonオブジェクトなどに変換できますか? 私はamfastを見つけましたが、そのDecoderクラスは3.131513074181806e-294AMF0 と仮定しNoneて AMF3 を返します。(どちらも不正解)

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

2 に答える 2

4

PyAMFを試しましたか。

from pyamf import remoting
remoting.decode(data)
于 2012-12-08T05:19:44.363 に答える
4

あなたのコードには 2 つの問題があります。1 つ目は、r.textバイナリ データを返すために使用することです。r.content代わりに使用してください。2 番目の問題はdecoder.decode、パケットではなく 1 つのオブジェクトをデコードする方法を使用することです。decoder.decode_packet代わりに使用してください。

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

を使用して、Pyamf を使用することも同様に機能しr.contentます。

于 2012-12-19T21:46:17.183 に答える