apache-flex - 在 Flex 的 HTTP Post 中上传任意数据

标签 apache-flex actionscript-3 http post

我们目前有一个 Java 小程序可以生成大量数据并将其上传到我们的服务器。我们拥有的一种上传方法是使用 HTTP POST 到我们的服务器,其内容只是原始数据(没有多部分编码或任何东西)。

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

我真正想要的是能够启动 HTTP POST,然后能够像写入套接字一样写入连接。这是否可能而无需在 Socket 类之上编写我自己的 HTTP 实现?有什么方法可以在 Flex 中设置 HTTP POST 的负载?

澄清:能够创建一个数据缓冲区并将其发送到服务器就足够了(这看起来是可能的)。如果我可以将连接视为套接字并随时间向其发送数据,而不是一次全部发送,那会更好,但这并不是严格要求的。

最佳答案

听起来您好像在问两个问题。是的,有一种方法可以在 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 类之外,我不相信有内置机制,不。尽管如此,还是希望它有所帮助!

关于apache-flex - 在 Flex 的 HTTP Post 中上传任意数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/507913/

相关文章:

android - 什么是最强大的 Android HTTP 库?

php - 当响应为内容处置 :attachment 时,似乎无法使用 PHP Curl 下载 CSV

css - 如果我们将 textAlign 设置为 "right"用于 spark textinput 控件,文本会在左侧溢出吗?

apache-flex - Flex/Actionscript 白色到透明

actionscript-3 - ActionScript-处理套接字扩展上的安全错误事件

actionscript-3 - 在 Flash 网站上添加元数据

python - 为什么我的 boost http 客户端无法连接到 python http 服务器?

apache-flex - ItemRender 数据变化

apache-flex - 如何防止窥探者访问 CFC 中的 ="remote"功能?

java - 服务层中的服务组织?