Я столкнулся с подобной проблемой при использовании Air. Мне нужно было распечатать на чековый принтер из приложения Air. Я не мог сделать это из самого приложения, поэтому я использовал RPC-сервер Python, чтобы выполнить работу за меня, и поговорил с ним по http. ниже приведена упрощенная версия, чтобы дать вам представление:
RPC-сервер Python
from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ('/','/RPC2')
server = SimpleXMLRPCServer(('localhost', 8123), requestHandler=RequestHandler)
def myService( arg0, arg1 ):
#do the stuff
return 0
server.register_function(myService)
server.serve_forever()
В Air я создаю вызов в виде строки XML и делаю свой запрос.
Я не показал все детали, так как использовал javascript, а не actionscript, поэтому, пожалуйста, рассматривайте это как псевдокод.
// XML as a string
// possibly create the XML and toXMLString() it?
var data:String = '
<?xml version="1.0"?>
<methodCall>
<methodName>myService</methodName>
<params>
<param>
<string>file1.pdf</string>
</param>
<param>
<string>file2.pdf</string>
</param>
</params>
</methodCall>';
var req:URLRequest = new URLRequest('localhost:8123');
rec.method = 'POST';
rec.data = data;
var loader:URLLoader = new URLLoader( req );
//etc