代码之家  ›  专栏  ›  技术社区  ›  Herms

在Flex中的HTTP Post中上载任意数据

  •  2
  • Herms  · 技术社区  · 15 年前

    我正在考虑实现一个Flex应用程序来做同样的事情,但是我没有看到一种复制网络行为的方法。Flex中所有与HTTP相关的网络类似乎都是在假设您只是发出请求的情况下工作的。我看不到一种方法来实际设置POST的有效负载(除了设置几个查询参数,这在这里不起作用)。

    我真正想要的是能够启动一个HTTP POST,然后能够像套接字一样写入连接。不必在Socket类之上编写自己的HTTP实现,这是可能的吗?有没有办法在Flex中设置HTTP POST的有效负载?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Christian Nunciato    15 年前

    听起来你好像在问两个问题。是的,有一种方法可以在Flex中设置HTTP POST的有效负载,并将任何格式的文件上载到服务器:

    private function doPost():void
    {
        var yourData:ByteArray = new ByteArray();
        var encoder:Base64Encoder = new Base64Encoder();
    
        for (var i:int = 0; i < 10000; i++)
            yourData.writeByte(i);
    
        yourData.position = 0;
        encoder.encodeBytes(yourData);
    
        var req:URLRequest = new URLRequest("http://yourdomain.com/yourservice.ext");
        req.method = URLRequestMethod.POST;
    
        var postData:URLVariables = new URLVariables();
        postData.userData = encoder.flush();
    
        req.data = postData;
    
        var loader:URLLoader = new URLLoader();
        loader.dataFormat = URLLoaderDataFormat.BINARY;
        loader.addEventListener(Event.COMPLETE, loader_complete);
        loader.load(req);
    }
    
    private function loader_complete(event:Event):void
    {
        trace("Upload complete!");
    }
    

    ... 但这听起来也像是你想要连接,保持连接打开,然后“像插座一样”任意写入;如果是这样的话,那么除了使用Socket类之外,我不相信有内置的机制,不。希望它能有所帮助!

    推荐文章