Salut tout le monde,

je travaille sur un projet pour lequel je développe en AS3 (ou AS2 si ça m'arrange). Je suis débutant dans ce langage...
Pour bien me faire comprendre, je dois préciser que je développe une appli client serveur dont le client est un petit robot (nommé iRobi Q ... mais vous ne trouverez pas de doc à ce sujet).
Le player embarqué dans ce robot n'est pas un player officiel, et ne fonctionne pas dans un navigateur.

Mon but est d'envoyer un XML, et d'en recevoir un en retour. Tout ceci fonctionne parfaitement depuis Firefox ou IE, mais sur le robot le comportement est identique à celui de flash CS:
- le XML est correctement envoyé au serveur et correctement traité par celui-ci
- la réponse est bien envoyée par le serveur (vérifiée à coup d'espion réseau : wireshark)
- la réponse n'est pas traitée pas mon appli flash: celle-ci sort une IOErrorEvent .


Je voudrais récupérer les données de retour quel que soit le statut HTTP (une erreur 404 fait sortir un évenement, mais une page est généralement renvoyée et j'aimerais avoir son contenu)

Voici le code de mon appli :

test.fla
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
import flash.net.*;
import TESTConnector;
 
entity.text="myEntity";
entity.setSize(500,25);
myResult.setSize(500,300);
 
 
var test:TESTConnector= new TESTConnector("http://127.0.0.1/",root);
 
function sendData(eventObj:Object) {
	trace("send data");
	test.appendResult("\n");
	test.setEntity(entity.text);
	test.createEntity("directory/");
};
myButton.addEventListener(MouseEvent.CLICK, sendData);
 
 
stop();


TESTConnector.as
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 
package {
	import flash.display.*;
	import flash.net.*;
	import flash.events.*;
 
 
 
	public class TESTConnector{
		internal var url=false;
		internal var entity=false;
		public var result=false;
		private var myLoader:URLLoader;
		private var _root:*;
 
 
		public function TESTConnector(url,r:*) {
			this.url = url;
			_root=r;
 
			appendResult ("init TESTConnector: "+url);
		}
 
		public function setEntity(name:String):void {
			this.entity=name;
		}
 
		public function createEntity(appName:String):int {
			var xmlStr="<tests><test id=\""+this.entity+"\"/></tests>";
			var returnValue = this.sendXML(appName,xmlStr);
 
			return returnValue;
		}
 
		public function sendXML(appPath,xmlStr):int {
			var url=this.url+"/"+appPath;
 
			var xmlFile=new XML(xmlStr);
 
			var myRequest:URLRequest = new URLRequest(url);
			myRequest.data = xmlFile;
			myRequest.contentType = "text/xml";
			myRequest.method = URLRequestMethod.POST;
 
			myLoader = new URLLoader();
 
			myLoader.addEventListener(Event.COMPLETE, onDataReceived);
			myLoader.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
			myLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
			myLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
 
 
			myLoader.load ( myRequest );
 
 
			appendResult(url + " " + xmlStr);
 
			return 200;
		}
 
		function securityErrorHandler(event:SecurityErrorEvent):void 
        {
            appendResult("securityErrorHandler: " + event);
        }
 
 
 
		function httpStatusHandler(event:HTTPStatusEvent):void {
            appendResult("httpStatusHandler: " + event);
        }
 
 
		function onIOError(event:IOErrorEvent):void {
    		appendResult("An error occurred when attempting to load the XML.\n" + event);
		}
 
 
		private function onDataReceived ( event:Event )  {
			appendResult(myLoader.data);
		}
 
		public function appendResult(txt) {
			_root.myResult.text=txt+"\n"+_root.myResult.text;
		}
 
 
	}
}

Merci d'avance,

JP