Flex http请求

下面类支持POST和GET请求,请求数据和出错将返回

package com.sole.util
{
    import flash.events.Event;
    import flash.events.HTTPStatusEvent;
    import flash.events.IEventDispatcher;
    import flash.events.IOErrorEvent;
    import flash.events.ProgressEvent;
    import flash.events.SecurityErrorEvent;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;  

    public class HttpConnent
    {
        /**请求的url*/
        public var url:String;
        /**请求的参数*/
        public var urlVariables:URLVariables;
//        public var resultStr:String;
        public var inputstream:Object;

        private var urlLoader:URLLoader;
        private var request:URLRequest;  

        public var completeFun:Function;
        public var errFun:Function;

        /**
         *连接提交请求
         * @method 请求类型
         * post或get  默认post
         * @isstream 是否数据流请求
         */
        public function gotoConn(method:String=URLRequestMethod.POST,isstream:Boolean=false):void{
            urlLoader = new URLLoader();
            //URLLoader 类以文本、二进制数据或 URL 编码变量的形式从 URL 下载数据
            request= new URLRequest(url);
            request.method = method;//设置请求的类型
            if(isstream){
                request.contentType= "application/octet-stream";
                request.data=inputstream;
                urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
            }
            if(urlVariables)
                request.data = urlVariables;//将url请求的数据放入request中     

            configureListeners(urlLoader);//给urlloader对象添加监听事件
            try {
                urlLoader.load(request);//开始发送请求
            } catch (error:Error) {
                trace(error);
                urlLoader.close();
            }
        }  

        private function configureListeners(dispatcher:IEventDispatcher):void {
            //加载完成事件;
            dispatcher.addEventListener(Event.COMPLETE, loaderHandler);
            //开始访问事件;
            dispatcher.addEventListener(Event.OPEN, loaderHandler);
            //加载进度事件;
            dispatcher.addEventListener(ProgressEvent.PROGRESS, loaderHandler);
            //跨域访问安全策略事件;
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loaderHandler);
            //Http状态事件;
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, loaderHandler);
            //访问出错事件;
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, loaderHandler);
        }
        private function loaderHandler(event:*):void
        {
            switch(event.type) {
                case Event.COMPLETE:
                    trace("成功: ");
                    if(completeFun!=null){
                        completeFun.call(null,event);
                    }
                    break;
                case Event.OPEN:
                    trace("open: " + event);
                    break;
                case ProgressEvent.PROGRESS:
                    trace("progress: " + event);
                    break;
                case SecurityErrorEvent.SECURITY_ERROR:
                    trace("securityError: " + event);
                    if(errFun!=null){
                        errFun.call(null);
                    }
                    break;
                case HTTPStatusEvent.HTTP_STATUS:
                    trace("httpStatus: " + event);
                    break;
                case IOErrorEvent.IO_ERROR:
                    trace("ioError: " + event);
                    if(errFun!=null){
                        errFun.call(null);
                    }
                    break;   

            }
        }  

    }
}

调用该方法

var url:String="";
                var variables:URLVariables = new URLVariables();
                variables.ID = UserID;

                var http:HttpConnent=new HttpConnent();
                http.url=url;
                http.urlVariables=variables;
                http.completeFun=customerNumberFun;
                http.errFun=customerNumberErrFun;
                http.gotoConn(URLRequestMethod.GET);

Flex http请求,布布扣,bubuko.com

时间: 2024-10-10 05:17:34

Flex http请求的相关文章

【教程】【FLEX】#002 请求服务端数据(UrlLoader)

为什么Flex需要请求服务端读取数据,而不是自己读取? Flex 是一门界面语言,主要是做界面展示的,它能实现很多绚丽的效果,这个是传统Web项目部能比的. 但是它对数据库和文件的读写 没有良好的支持. 既然Flex没有对数据库和读写文件有良好的支持,那么读数据数据,和读写文件,可以用C#或者Java来编写,然后Flex请求 用C#或者Java写好的接口. Flex请求服务端接口的方法有很多种,这边我就讲解如何使用UrlLoader来请求接口. 请求服务端接口的步骤: 1.创建UrlReques

Flex与.NET互操作(六):Flex和.NET协同开发利器FluorineFx

在本系列前面几篇文章中分别介绍了通过WebService.HTTPService.URLLoader以及FielReference等组件或类来完成Flex与.NET服务端的通信的相关知识点.通过这些方式来完成与服务端的通信是非常方便和简单的,但有他的缺点就是通信数据量较小,如要传输大量的数据或是实现不同对象的序列化传输,它们则满足不了我们的需求,需要寻找另外一种通信协议,另一种高效的传输协议来代替SOAP协议传输的方案,那便是AMF(ActionScript Message Format)协议.

Flex+Struts2+JSON实现Flex和后台的HTTP Service请求

http://www.fengfly.com/plus/view-191093-1.html Flex+Struts2+JSON的后台代码我在这就不多说了.不懂得请看我写的上一篇文章<Struts2+JQuery+JSON实现异步交互>那篇文章,后台没有任何变化. 在这着重讲Flex端的实现代码. 第一步: 从http://code.google.com/p/as3corelib/网站中下载as3corelib-.92.1.zip文件并解压,解压后在as3corelib-.92.1\as3co

react-native http请求之后navigator导航跳转

琢磨react-native有一段时间了.对于我来说,它的确是前端开发工作者的福音,因为我可以利用它来写app的代码,而且基本可以一套代码,多个平台使用. 早就想写一篇随笔记录一下react native的学习历程了,可是最近在navigator(导航,可以理解为‘页面’跳转)这里遇到了一个比较棘手的问题,所以耽搁了两天,中途甚至产生过放弃的念头,还一度去看了ionic以及QT的demo,思前想后,经过对比,发现还是react-native比较自己.刚好今天也将困扰已久额问题解决了,心情大好啊.

Flex Socket与Java通信实例说明(转)

Flex Socket与Java通信实例说明(转) 这两天一直在flex的Socket ,现在终于懂了很多.由浅到深一步一步深入.慢慢体会实例,虽然实例都是在网上找的,但也经过了我的测试.我比较喜欢注释,也注释了很多. 跟着走你就会懂.. Flex端 和 Java端, 先运行Java端启动服务.然后在测试Flex. 实例一: Flex端: <?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow

flex+java+blazeds 多通道好文

http://www.cnblogs.com/noam/archive/2010/08/05/1793504.html blazeds, spring3整合实现RPC服务和消息服务 环境: MyEclipse 7.5 Flash Builder 4 plugin for eclipse Tomcat 6 BlazeDS 4.0.0 springframework 3.0.3 Spring-flex整合 org.springframework.flex-1.0.3.RELEASE.jar (适用于

Flex服务器技术

Flex是表现层技术,或者说Flex是展现数据的技术,而数据是产生在服务器端的. Flex服务器技术则是指支持Flex应用同外部系统进行数据交互的技术和产品,包括LiveCycle Data Service和BlazeDS. 基于AMF完成数据传输,Flex远程对象技术使用户在客户端的操作能够与实现后端业务方法的Java对象类构成映射,客户端操作会直接发送方法需要的参数,并调用后台业务方法. Flex Builder开发的Flex应用通常以swf的文件形式部署在Web服务器上,当用户访问Web页

基于restful注解(spring4.0.2整合flex+blazeds+spring-mvc)&lt;一&gt;

摘自: http://www.blogjava.net/liuguly/archive/2014/03/10/410824.html 参考官网:1.http://livedocs.adobe.com/blazeds/1/blazeds_devguide/2.http://docs.spring.io/spring-flex/docs/1.5.2.RELEASE/reference/html/1)下载blazeds(turnkey4.0.x版本)网址:http://sourceforge.net/

Flex入门(一)——基本理论

Flash作为一款漂亮动画的产品,是大家所喜爱的,他可以给我们带来更好的视觉效果.但是如何使其很快很好的让Java程序员,.net程序员等所接受,并进行相关开发,Macromedia公司在2004年3月发布的,基于其专有的MacromediaFlash平台,它是涵盖了支持RIA(Rich Internet Applications)的开发和部署的一系列技术组合. 是一种类似于Jsp和Asp的前台技术.这篇博客简单介绍一下关于flex的一些理论知识. 一,是什么,干什么用,优势,劣势? Flex是