2009-04-08 4 views

Répondre

1

J'utilise quelque chose comme ceci:

var request:URLRequest = new URLRequest(); 
request.url = 'http://example.org'; 

// If you're POSTing data: 
request.method = URLRequestMethod.POST; 
request.data = new URLVariables({ /* Your object */ }); 

var loader:URLLoader = new URLLoader(); 
loader.dataFormat = URLLoaderDataFormat.VARIABLES; // If you're using POST 
try { 
    loader.load(request); 
} catch(error:Error) { 
    // Handle error 
} 

trace(loader.data); // Result 

Documentation:

+0

Mr.Ron j'ai mentionné dans ma question que je dois appeler une méthode dans un service Web pour ne pas demander de fichier ou de page. Le code que vous avez écrit convient pour demander la page Asp, mais dans le service web, le problème est différent et nous devons utiliser SOAP et encapsuler les données à l'intérieur. Lisez la question avant d'atteindre – Ahmy

+0

Ahmy, j'ai lu votre question, mais vous n'avez pas spécifié un service Web basé sur SOAP. Il existe plusieurs types de services Web. Ma réponse est orientée vers les services RESTful parce qu'ils ont été populaires récemment. –

+0

S'il s'agit d'un service .Net, vous pouvez facilement activer les appels POST et GET à côté du SOAP par défaut. Il est intégré, juste un paramètre qui doit être retourné. –

1

Voici le code que j'ai utilisé dans l'un de mes projets Flex ...

import mx.rpc.soap.WebService; 

public var service:WebService = new WebService(); 

override protected function initializationComplete():void 
{ 
    service.wsdl = "http://localhost:1133/YourService.asmx?wsdl" 

    // GetPayload is the method name you're calling on your web service 
    service.GetPayload.resultFormat = "e4x"; 
    service.GetPayload.addEventListener("result", yourResultHandler); 
    service.GetPayload.addEventListener("fault", yourFaultHandler); 

    // Method to call once the WSDL is loaded 
    service.addventListener(LoadEvent.LOAD, loadHandler); 

    service.loadWSDL(); 
} 

Alors voici ce qui se passe une fois que le WSDL est chargé

protected function loadHandler(event:LoadEvent):void 
{ 
    // send() takes the service parameters 
    service.GetPayload.send("Product"); 
} 

Vous avez juste besoin d'écrire les deux méthodes pour gérer le XML retourné par vos services (les données sont renvoyées au format e4x:

protected function yourResultHandler(event:ResultEvent):void 
{ 
    _messageXml = XML(event.result); 
} 

proteted function yourFaultHandler(event:FaultEvent):void 
{ 
    Alert.show(event.toString()); 
} 
+0

Je n'utilise pas Flex, j'ai mentionné dans ma question que j'ai besoin d'une solution pour appeler la méthode dans web servie dans Action Script 3.0 – Ahmy

+0

Vous n'avez pas besoin d'utiliser Flex pour utiliser l'espace de noms mx.rpc.soap.WebServices. –

+0

lorsque je l'importe dans Action Script 3.0, il me signale: 1172: Définition mx.rpc.soap: WebService est introuvable. ??????????????????????????? – Ahmy

0

vous pouvez utiliser les services Web par l'un de la méthode délicate d'abord vous faire swf par compilé dans un environnement flexible qui comprend le diablotin ort instructions de webservice comme importer mx.rpc.webservices. Maintenant, compilez-le, vous obtiendrez un swf. maintenant vous allez à as3.0 et faites un movieclip vide sur scène et dans la propriété linkage mettez l'importation pour le partage à l'exécution et mettez le a.swf (ex) dans la zone de texte dans sharing.now vous pouvez importer l'instruction dans votre fichier script d'action importer mx.rpc.webservices.and utiliser la même méthode que flex. certainement vous serez en mesure d'accéder aux services Web ....

Questions connexes