下面类支持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请求的更多相关文章

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

    为什么Flex需要请求服务端读取数据,而不是自己读取? Flex 是一门界面语言,主要是做界面展示的,它能实现很多绚丽的效果,这个是传统Web项目部能比的. 但是它对数据库和文件的读写 没有良好的支持 ...

  2. Flex弹出窗口请求Action函数

    Flex弹出窗口请求Action函数 private function askQuestion(event:MouseEvent):void { var askQuestions:AskWindow ...

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

    http://www.fengfly.com/plus/view-191093-1.html Flex+Struts2+JSON的后台代码我在这就不多说了.不懂得请看我写的上一篇文章<Strut ...

  4. arcgis for flex全国地图天气预报的具体实现过程解析

    系统架构是B/S,开发语言是flex,开发工具是myeclise或者flashbuild,通过调用百度提供的在线天气预报web api接口的方式来实现. 采用地图是ArcGIS全国地图,开发接口为ar ...

  5. Flex box弹性布局 及 响应式前端设计的优化

    Flex box弹性布局 Flex box是CSS3新添加的一种模型属性,它的出现有力的打破了我们常常使用的浮动布局.实现垂直等高.水平均分.按比例划分,可以实现许多我们之前做不到的自适应布局.如果你 ...

  6. React Native 网络请求

    如下面的Code,分别介绍了GET,POST,以及使用XMLHttpRequest的Get请求. import React, { Component } from 'react'; import { ...

  7. flex+java+blazeds 多通道好文

    http://www.cnblogs.com/noam/archive/2010/08/05/1793504.html blazeds, spring3整合实现RPC服务和消息服务 环境: MyEcl ...

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

    琢磨react-native有一段时间了.对于我来说,它的确是前端开发工作者的福音,因为我可以利用它来写app的代码,而且基本可以一套代码,多个平台使用. 早就想写一篇随笔记录一下react nati ...

  9. Flex Viewer (二)——体系结构

    一.概述 在上一篇文章<深入浅出Flex Viewer (一)——概述>中,笔者对Flex Viewer用于构建以地图为中心的富客户端(RIA)应用的原型的功能和价值做了简要地介绍.在本文 ...

随机推荐

  1. 定时调度模块:sched

    """A generally useful event scheduler class. 事件调度器类 Each instance of this class manag ...

  2. P1073 最优贸易

    #include <bits/stdc++.h> using namespace std; const int maxn = 100005; int head1[maxn], head2[ ...

  3. 如何保证App外包的最终质量,不延期不烂尾?

    选择App外包服务的客户,最害怕的就是App项目延期甚至烂尾.投入了巨大的时间和财富,结果最后App无法上线. 解决这个问题有两个方法:第一,在选择公司前,先了解清楚有关App外包的一切问题,做到心里 ...

  4. DuiLib学习笔记1——编译运行demo

    c++中皮肤问题比较麻烦,MFC自带的太难用.DirectUI界面库就比较强大了,之前像skin++之类的基于DirectUI收费昂贵.DuiLib是基于DirectUI的界面库,可以将用户界面和处理 ...

  5. Eclipse定制右键创建文件快捷菜单

    打开窗口“Customize Perspective - Java EE”,切换选项卡到“Shortcuts”: 进行一下配置: “Generate”:如上图勾选方式 "Java" ...

  6. Struts2(六):ResultType

    本章节将继续学习struts2的返回类型的使用方法. 学习文档下载struts2 full包解压后会在doc下包含离线html文档. 点击运行后页面: 点击Guides向导终将会有向导列表 再点开后, ...

  7. Django:使用PyCharm创建django项目并发布到apache2.4

    环境: python2.7 x64 win7 x64 django (通过pycharm创建时自动安装)版本:1.10.2 apache:2.4 x64 下载pycharm个人版非社区版本并激活 起初 ...

  8. JAVA线程池原理详解二

    Executor框架的两级调度模型 在HotSpot VM的模型中,JAVA线程被一对一映射为本地操作系统线程.JAVA线程启动时会创建一个本地操作系统线程,当JAVA线程终止时,对应的操作系统线程也 ...

  9. SQL Server数据库性能优化(二)之 索引优化

    参考文献 http://isky000.com/database/mysql-performance-tuning-index 原文作者是做mysql 优化的     但是我觉得  在索引方面    ...

  10. ThinkPHP讲解(十一)——验证码和文件上传

    一.验证码 1.页面前端显示 (验证码是图片标签,来源是控制器里的yzm()操作方法) <h1>登录</h1> <form action="__ACTION__ ...