linuxwindowsinboxwhatsappicloudtweetdeckhipchattelegramhangoutsslackgmailskypefacebook-workplaceoutlookemailmicrosoft-teamsdiscordmessengercustom-servicesmacos
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
3.3 KiB
153 lines
3.3 KiB
9 years ago
|
# coding=utf-8
|
||
|
import datetime
|
||
|
import pyamf
|
||
|
from pyamf import remoting
|
||
|
from pyamf.remoting import Envelope
|
||
|
from pyamf.remoting import Response
|
||
|
from pyamf.remoting import HeaderCollection
|
||
|
from xml.etree.cElementTree import Element, SubElement
|
||
|
from array import *
|
||
|
|
||
|
# create an xml document
|
||
|
xmlDocument = Element('root')
|
||
|
parent = SubElement(xmlDocument, 'parent')
|
||
|
child1 = SubElement(parent, 'child')
|
||
|
child1.text = "foo"
|
||
|
child1.set('id', 'c1')
|
||
|
child2 = SubElement(parent, 'child')
|
||
|
child2.text = "bar"
|
||
|
child2.set('id', 'c2')
|
||
|
|
||
|
# create a typed object
|
||
|
class Foo:
|
||
|
class __amf__:
|
||
|
dynamic = False
|
||
|
static = ('bar',)
|
||
|
|
||
|
pyamf.register_class(Foo, 'Foo');
|
||
|
|
||
|
foo = Foo()
|
||
|
foo.bar = 'baz'
|
||
|
|
||
|
# create an associative array (ECMA Array)
|
||
|
ecmaArray = pyamf.MixedArray({
|
||
|
'a': 'b',
|
||
|
'c': 'd',
|
||
|
})
|
||
|
|
||
|
#-----------------------------------------------
|
||
|
# AMF0 all data types
|
||
|
#-----------------------------------------------
|
||
|
|
||
|
envelope = Envelope(amfVersion=0)
|
||
|
|
||
|
message0 = Response({
|
||
|
'integer': 42,
|
||
|
'dbl': 90.01,
|
||
|
'tru': True,
|
||
|
'fls': False,
|
||
|
'str': 'sencha',
|
||
|
'obj': { 'a': 1, 'b': 2 },
|
||
|
'none': None,
|
||
|
'undef': pyamf.Undefined,
|
||
|
'ecmaArray': pyamf.MixedArray(a='1', b='2', c='3'),
|
||
|
'strictArray': [ 1, 2, 3 ],
|
||
|
'date': datetime.date(2012, 12, 31),
|
||
|
'xmlDocument': xmlDocument,
|
||
|
'typedObject': foo,
|
||
|
})
|
||
|
|
||
|
message1 = Response({
|
||
|
'text': 'hello'
|
||
|
})
|
||
|
|
||
|
envelope.headers['a'] = 'b';
|
||
|
envelope.headers['c'] = 'd';
|
||
|
envelope.headers['e'] = 'f';
|
||
|
|
||
|
envelope.__setitem__('msg1', message0)
|
||
|
envelope.__setitem__('msg2', message1)
|
||
|
|
||
|
stream = remoting.encode(envelope)
|
||
|
|
||
|
file = open('amf0-all.amf', 'w+')
|
||
|
file.write(stream.getvalue())
|
||
|
|
||
|
#-----------------------------------------------
|
||
|
# AMF0 recordset
|
||
|
#-----------------------------------------------
|
||
|
|
||
|
envelope = Envelope(amfVersion=0)
|
||
|
|
||
|
records = [
|
||
|
{ 'id': 1, 'name': 'Phil' },
|
||
|
{ 'id': 2, 'name': 'Don' },
|
||
|
{ 'id': 3, 'name': 'Kevin' }
|
||
|
]
|
||
|
|
||
|
message = Response(records)
|
||
|
|
||
|
envelope.__setitem__('message', message);
|
||
|
|
||
|
stream = remoting.encode(envelope)
|
||
|
|
||
|
file = open('amf0-records.amf', 'w+')
|
||
|
file.write(stream.getvalue())
|
||
|
|
||
|
#-----------------------------------------------
|
||
|
# AMF3 all data types
|
||
|
#-----------------------------------------------
|
||
|
|
||
|
envelope = Envelope(amfVersion=3)
|
||
|
|
||
|
message0 = Response({
|
||
|
'undef': pyamf.Undefined,
|
||
|
'none': None,
|
||
|
'fls': False,
|
||
|
'tru': True,
|
||
|
'integer': 42,
|
||
|
'dbl': 90.01,
|
||
|
'str': 'sencha',
|
||
|
'xmlDocument': xmlDocument,
|
||
|
'date': datetime.date(2012, 12, 31),
|
||
|
'array': [ 1, 2, 3 ],
|
||
|
'obj': { 'a': 1, 'b': 2 },
|
||
|
'xml': xmlDocument
|
||
|
})
|
||
|
|
||
|
message1 = Response({
|
||
|
'text': 'hello'
|
||
|
})
|
||
|
|
||
|
envelope.headers['a'] = 'b';
|
||
|
envelope.headers['c'] = 'd';
|
||
|
envelope.headers['e'] = 'f';
|
||
|
|
||
|
envelope.__setitem__('message0', message0)
|
||
|
envelope.__setitem__('message1', message1)
|
||
|
|
||
|
stream = remoting.encode(envelope)
|
||
|
|
||
|
file = open('amf3-all.amf', 'w+')
|
||
|
file.write(stream.getvalue())
|
||
|
|
||
|
#-----------------------------------------------
|
||
|
# AMF3 recordset
|
||
|
#-----------------------------------------------
|
||
|
|
||
|
envelope = Envelope(amfVersion=3)
|
||
|
|
||
|
records = [
|
||
|
{ 'id': 1, 'name': 'Phil' },
|
||
|
{ 'id': 2, 'name': 'Don' },
|
||
|
{ 'id': 3, 'name': 'Kevin' }
|
||
|
]
|
||
|
|
||
|
message = Response(records)
|
||
|
|
||
|
envelope.__setitem__('message', message);
|
||
|
|
||
|
stream = remoting.encode(envelope)
|
||
|
|
||
|
file = open('amf3-records.amf', 'w+')
|
||
|
file.write(stream.getvalue())
|