2009-12-09 151 views
1

可以anyboy告诉我这在Flex中相当于转换卷曲弯曲

卷曲--insecure --request POST --basic -u [email protected]:密码--header“内容类型:应用/ xml”的--data二进制‘@c:\卷曲\例子\ New_Activity.xml’https://beta.12sprints.com/v1/activities

basicaly此1A中的API中,我需要发送的用户凭证和包含数据的XML文件( new_activity)

我试图添加它作为头认证和编码到base64的凭据

var enc:Base64Encoder = new Base64Encoder(); enc.encode(“[email protected]”+“:”+ password); myservice.headers [“Authorization”] =“basic”+ enc.toString(); myservice.send();

,但同样不`吨的工作...... 请帮助..

回答

1

just_a_dude的方式有认证部,但他的示例中的xml不适用于当前的12sprints API,并且不应该使用Base64编码。这是他的样本的一个修改版本的作品(只需更改用户名/密码):

  // 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

我不知道,但也许这是去

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> 
     */ 
    } 


} 
}