Quelle est la meilleure bibliothèque/package/classe disponible pour appeler les services Web SOAP à partir d'ActionScript 3, sans utiliser le framework Flex?Services Web SOAP de AS3, sans Flex?
Répondre
Y a-t-il une raison pour laquelle vous ne voulez pas utiliser les bibliothèques flexibles? De ce que je comprends en utilisant uniquement les composants dont vous avez besoin dans votre application ne devrait pas vous causer des problèmes de performance.
cependant prendre un coup d'oeil: http://alducente.wordpress.com/2007/10/27/web-service-in-as3-release-10/
Je ne sais pas si c'est le meilleur, mais il a été recommandé e par un de mes collègues.
Lecture suggérée: avancée ActionScript 3 avec des modèles de conception par Joey Lott et Danny Patterson Aller au chapitre 15 pour une meilleure solution et complète.
Mon code exemple:
private var xmlResults:XML = new URLLoader;
private var urlLoader:URLLoader = new URLLoader();
public function fErrorHandler(e:IOErrorEvent):void {
trace("xml failed!");
}
//when the "loader" event object finishes the loading of the xml file, run other needed functions to process the data
private function fLoaderCompleteHandler(event:Event):void {
trace("xml loaded!!"); //jwt testing
var result2:XML = new XML(urlLoader.data); // loads the xml file data into the xml object
xmlResults = result2; //have the global xml object equal the current data loaded xml object
result2 = null; // dont need current xml object any more so erase it
fParseXML(0); //process the first set of records from the xml object
trace("found xml" + xmlResults.toString());
}
public function fParseXML(intAddNum:Number):void{
//create variables to store the record info
//
var envelope:XML = xmlResults; //XML(urlLoader.data);
var soap:Namespace = envelope.namespace("soap");
var responseN:Namespace = new Namespace("http://www.domain.com/school/ServiceCollege");
var resultL:XMLList = envelope.soap::Body.responseN::HelloTestResponse.responseN::HelloTestResult;
var strTest:String;
//if only one response field will be return by the web service
strTest = resultL;
//do something like this if multiple response feilds will be returned
//strTest = resultL.response::schoolName.toString();
trace("parsing:" + strTest);
trace("done loading:");
}
public function fBeginRequest():void{
var strXMLDataRequest:String
var urlRequest:URLRequest = new URLRequest();
urlRequest.contentType = "text/xml; charset=utf-8";
urlRequest.method = "POST";
urlRequest.url = "http://www.domain.com/school/serviceCollege.asmx";
var soapAction:URLRequestHeader = new URLRequestHeader("SOAPAction","http://www.domain.com/school/ServiceCollege/HelloTest");
urlRequest.requestHeaders.push(soapAction);
strXMLDataRequest = "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
strXMLDataRequest = strXMLDataRequest + "<soap:Body>";
strXMLDataRequest = strXMLDataRequest + "<HelloTest xmlns=\"http://www.domain.com/school/ServiceCollege\" />";
strXMLDataRequest = strXMLDataRequest + "</soap:Body>";
strXMLDataRequest = strXMLDataRequest + "</soap:Envelope>";
urlRequest.data = new XML(strXMLDataRequest);
urlLoader.load(urlRequest);
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, fErrorHandler); //add the event to the "loader" object
urlLoader.addEventListener(Event.COMPLETE, fLoaderCompleteHandler); //add the event to the "loader" object
}
Savon demande:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<HelloTest xmlns="http://www.domain.com/school/ServiceCollege" />
</soap:Body>
</soap:Envelope>
Réponse de savon:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<HelloTestResponse xmlns="http://www.domain.com/school/ServiceCollege">
<HelloTestResult>string</HelloTestResult>
</HelloTestResponse>
</soap:Body>
</soap:Envelope>
J'ai trouvé this post très utile. C'est un bon conseil en général: ajoutez un swc pour activer les classes Flex en flash.
- 1. Services Web publics SOAP
- 2. Services Web iPhone et SOAP
- 3. ASP.net services Web SOAP « génériques »
- 4. Services Web SOAP dans erlang
- 5. Services Web .NET - Défauts SOAP
- 6. Services Web SOAP: alias d'objet en réponse?
- 7. Services Web ASMX avec extension SOAP
- 8. Cadre Python pour les services Web SOAP
- 9. BlazeDS vs SOAP et services Web
- 10. SOAP XML avec AS3
- 11. signé RSL sans Flex (projet pur AS3)
- 12. Création de services Web sans serveur Web
- 13. flex soap 1.2 webservice
- 14. Services Web SOAP Attributs permettant de vérifier le jeton d'authentification
- 15. Flash RemoteObject Weborb connexion sans services-config.xml (sans Flex)
- 16. Flex - Recommandé pour utiliser plusieurs services Web?
- 17. iPhone - appeler les services SOAP
- 18. Exposer les services Spring en tant que service web SOAP
- 19. Utilisation des services Web SOAP comme modèle dans ASP.NET MVC
- 20. iPhone XML requêtes SOAP ou services Web .NET
- 21. MicrosoftAjax.js, les services Web SOAP et le code HTML statique
- 22. Soap Web Service PHP
- 23. Services Web .NET sans ASP.NET/IIS?
- 24. Fournisseurs de services Web J2ME
- 25. Déploiement de projets Flex Utilisation de services Web importés
- 26. Analyse d'une réponse SOAP multipart dans Flex?
- 27. AS3/Flex 4: Assouplissement via AS3
- 28. AS3/Flex Decorator Pattern
- 29. Services Web dernier contrat?
- 30. Flex: l'évolution des styles de composants Flex AS3
Merci, les trucs alducente semble que ça peut marcher pour moi. Une version plus récente peut être trouvée ici: http://labs.alducente.com/gophr/ –