2009-12-09 4 views
1

peut anyboy me dire l'équivalent de ce flexcurl Convertir flex

boucle --insecure --request POST --basic -u [email protected]: Mot de passe --header « Content-Type: application/xml @c » --data binaire « : \ boucle \ examples \ New_Activity.xml » https://beta.12sprints.com/v1/activities

basiquement ce ia un api dans lequel je dois envoyer les informations d'identification utilisateur et un fichier xml contenant les données (new_activity)

pour les informations d'identification, j'ai essayé de l'ajouter en tant qu'authentification d'en-tête et de l'encoder en base64

var enc: Base64Encoder = new Base64Encoder(); Encodeencode ("[email protected]" + ":" + mot de passe); myservice.headers ["Authorization"] = "basic" + enc.toString(); myservice.send();

mais que le travail trop n `t ... s'il vous plaît aider ..

Répondre

1

just_a_dude a la partie d'authentification , mais le xml dans son exemple ne fonctionne pas avec l'API 12sprints actuelle, et il ne devrait pas être codé en Base64. Voici une version modifiée de son exemple qui fonctionne (il suffit de changer le nom d'utilisateur/mot de passe):

  // the xml we want to send to the server 
      var xml:String = "<activity name=\"New activity using cURL\"></activity>" 


      var bytes:ByteArray = new ByteArray(); 
      bytes.writeUTFBytes(xml); 

      // encoded credentials 
      var credentials:Base64Encoder = new Base64Encoder(); 
      credentials.encode("[email protected]:pass"); 


      var request:URLRequest = new URLRequest("https://beta.12sprints.com/v1/activities"); 
      request.data = bytes; 
      request.method = URLRequestMethod.POST; 
      request.requestHeaders.push(new URLRequestHeader("Authorization", "Basic " + credentials)); 
      request.requestHeaders.push(new URLRequestHeader("Content-Type", "application/xml")); 

      var loader:URLLoader = new URLLoader(); 
      loader.dataFormat = URLLoaderDataFormat.BINARY; 

      loader.addEventListener(Event.COMPLETE, completeHandler); 
      loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); 
      loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); 

      loader.load(request); 
    } 

    protected function completeHandler(event:Event):void { 
      trace("complete"); 
    } 

    protected function errorHandler(event:Event):void { 
      trace("error : ", event); 

      var loader:URLLoader = event.currentTarget as URLLoader; 
      trace(loader.data); 
    } 
0

Je ne sais pas, mais peut-être c'est la voie à suivre

package { 

import flash.display.Sprite; 
import flash.events.Event; 
import flash.events.IOErrorEvent; 
import flash.events.SecurityErrorEvent; 
import flash.net.URLLoader; 
import flash.net.URLLoaderDataFormat; 
import flash.net.URLRequest; 
import flash.net.URLRequestHeader; 
import flash.net.URLRequestMethod; 
import flash.net.URLVariables; 
import flash.utils.ByteArray; 

import mx.graphics.codec.PNGEncoder; 
import mx.utils.Base64Encoder; 

[SWF(backgroundColor = "0xffffff", width = 500, height = 400)] 

public class UploadExample extends Sprite { 

    public function UploadExample() { 

     // the xml we want to send to the server 
     var xml:XML = <data> 
      <activity> 
       <title>foo</title> 
       <description>foo bar rules</description> 
       <created>2009-12-09 15:14:00</created> 
      </activity> 
     </data>; 


     var bytes:ByteArray = new ByteArray(); 
     bytes.writeUTFBytes(xml); 

     // encoded data 
     var data:Base64Encoder = new Base64Encoder(); 
     data.encodeBytes(bytes); 

     // encoded credentials 
     var credentials:Base64Encoder = new Base64Encoder(); 
     credentials.encode("[email protected]:password"); 


     var request:URLRequest = new URLRequest("https://beta.12sprints.com/v1/activities"); 
     request.data = data; 
     request.method = URLRequestMethod.POST; 
     request.requestHeaders.push(new URLRequestHeader("Authorization", "Basic " + credentials)); 
     request.requestHeaders.push(new URLRequestHeader("Content-Type", "application/xml")); 

     var loader:URLLoader = new URLLoader(); 
     loader.dataFormat = URLLoaderDataFormat.BINARY; 

     loader.addEventListener(Event.COMPLETE, completeHandler); 
     loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler); 
     loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler); 

     loader.load(request); 
    } 

    protected function completeHandler(event:Event):void { 
     trace("complete"); 
    } 

    protected function errorHandler(event:Event):void { 
     trace("error : ", event); 

     var loader:URLLoader = event.currentTarget as URLLoader; 
     trace(loader.data); 
     /* this is what get ... 
     <?xml version="1.0" encoding="UTF-8"?> 
     <error> 
      <http_status>401 Unauthorized</http_status> 
      <message>Could not authenticate you.</message> 
     </error> 
     */ 
    } 


} 
}