代码之家  ›  专栏  ›  技术社区  ›  Neo xcavan

将卷曲转换为弯曲

  •  1
  • Neo xcavan  · 技术社区  · 16 年前

    有人能告诉我这个在flex里的等价物吗

    curl--unsecure--request post--basic-u testuser@mydomain.com:password--header“content-type:application/xml”-data-binary“@c:\curl\examples\new_activity.xml” https://beta.12sprints.com/v1/activities

    基本上这是一个API,我需要在其中发送用户凭证和包含数据的XML文件(新的活动)

    对于凭据,我尝试将其添加为头授权并将其编码为base64

    var enc:base64encoder=new base64encoder(); enc.encode(“saurav.das@sap.com”+“:”+密码); myservice.headers[“authorization”]=“基本”+enc.toString(); myservice.send();

    但那也不管用… 请帮忙……

    2 回复  |  直到 16 年前
        1
  •  1
  •   fiirhok    16 年前

    只是\u-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("testuser@example.com: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); 
        }
    
        2
  •  0
  •   just_a_dude    16 年前

    我不确定,但也许这是该走的路

    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("testuser@mydomain.com: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>
            */
        }
    
    
    }
    }
    
    推荐文章