分享as3httpclient的替代品httprequest

最近在项目开发中,需要用到socket来模拟http请求,dog sun的socket跨域问题大家自行注意了

大致说一下就是需要在server上监听一个843端口,返回策略文件字符串给客户端

这个时候名气最大的自然是as3httpclient了,这里不多说了,我日志里有相关的介绍

但是有时候这个swc过于冗余了。对于我来说,精简代码那么就希望能够更好的压缩容量了

加个swc直接大100多K是不能容忍的。

后面找到一个能应付项目需求的http_loader,这里感谢原作者并给出地址

https://github.com/chndyyang/fookie/tree/master/http_loader/net/fdream/io

有了这个以后两个文件就满足了需求,下面再分享一下我写好的httprequest,需要自行导入httploader.swc或者将代码加入项目

用法很简单,源码稍微看看就懂了。个人习惯用回调,而不是抛事件,这个因人而异,随便改吧

 

  1 /**
  2  * @ClassName HttpRequest.as
  3  * @Description socket模拟http请求
  4  * All rights Reserved, Designed By Video++
  5  * CopyRight Copyright(C) 2015
  6  * Company www.videojj.com
  7  * @author Dennis
  8  * @version V1.0
  9  * @Date 2015-11-26 21:13:27
 10  */
 11 package com.videojj
 12 {
 13     import flash.events.Event;
 14     import flash.events.HTTPStatusEvent;
 15     import flash.events.IOErrorEvent;
 16     import flash.events.ProgressEvent;
 17     import flash.events.SecurityErrorEvent;
 18     import flash.net.URLRequest;
 19     import flash.net.URLRequestHeader;
 20     
 21     import net.fdream.io.HTTPLoader;
 22     import net.fdream.io.HTTPResponse;
 23 
 24     public class HttpRequest
 25     {
 26         private var _url:String;
 27         private var _method:String;
 28         
 29         private var _request:URLRequest;
 30         private var loader:HTTPLoader;
 31 
 32         public var sucCallbackFun:Function;
 33         public var failedCallbackFun:Function;
 34 
 35         /**
 36          * @Title: HttpRequest
 37          * @Description: 构造函数
 38          * @param: url
 39          * @param: method urlrequestmethod.GET OR POST
 40          * @throws
 41          */
 42         public function HttpRequest(url:String, method:String)
 43         {
 44             _url = url;
 45             _method = method;
 46 
 47             _request = new URLRequest(_url);
 48             _request.method = _method;
 49             
 50             loader = new HTTPLoader();
 51             loader.addEventListener(Event.COMPLETE, completeHandler);
 52             loader.addEventListener(Event.OPEN, openHandler);
 53             loader.addEventListener(ProgressEvent.PROGRESS, progressHandler);
 54             loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
 55             loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
 56             loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
 57         }
 58         
 59         private function completeHandler(event:Event):void 
 60         {
 61             var loader:HTTPLoader = HTTPLoader(event.target);
 62             var response:HTTPResponse = loader.response;
 63             
 64             if(sucCallbackFun != null)
 65             {
 66                 sucCallbackFun(response);
 67             }
 68         }
 69         
 70         private function openHandler(event:Event):void {
 71             trace("acc openHandler: " + event);
 72         }
 73         
 74         private function progressHandler(event:ProgressEvent):void {
 75             trace("acc progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal);
 76         }
 77         
 78         private function securityErrorHandler(event:SecurityErrorEvent):void 
 79         {
 80             if(failedCallbackFun != null)
 81             {
 82                 failedCallbackFun(event);
 83             }
 84         }
 85         
 86         private function httpStatusHandler(event:HTTPStatusEvent):void {
 87             trace("acc httpStatusHandler: " + event);
 88         }
 89         
 90         private function ioErrorHandler(event:IOErrorEvent):void {
 91             if(failedCallbackFun != null)
 92             {
 93                 failedCallbackFun(event);
 94             }
 95         }
 96         
 97         public function addHeader(header:URLRequestHeader):void
 98         {
 99             _request.requestHeaders.push(header);
100         }
101 
102         public function request():void
103         {
104             loader.load(_request);
105         }
106         
107         public function set data(value:Object):void
108         {
109             _request.data = value;
110         }
111     }
112 }

 

转载于:https://www.cnblogs.com/walkerdennis/p/5007125.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值