用HttpService实现简单as3通讯

as3 code:  

HttpService.as

package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.HTTPStatusEvent;
    import flash.events.IOErrorEvent;
    import flash.events.MouseEvent;
    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;
    import flash.net.navigateToURL;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    
    public class HttpService extends Sprite
    {    
        public 
function HttpService()
        {
            init();
            reuqestServer();
        }
        
        //服务端的http地址字符串
        private 
var urlStr:String = "http://127.0.0.1:8080/webSange/TestHttpService.jsp";
        private 
var _y:Number = 20;
        
        private 
function init():void
        {
            
//画一个圆 颜色为黑色
            var sprite:Sprite = new Sprite();
            sprite.graphics.beginFill(
0X000000);
            sprite.graphics.drawCircle(
300,100,20);
            sprite.graphics.endFill();
            sprite.addEventListener(MouseEvent.CLICK, clickHandler);
            sprite.buttonMode 
= true;
            
this.addChild(sprite);
        }
        
        
//点击圆点将   go to jsp  发送到TestHttpService.jsp,然后显示出来
        private function clickHandler(e:Event):void
        {
            
var name:String = "go to jsp";
            
var url:String = urlStr + "?name="+ name;
            navigateToURL(
new URLRequest(url));
        }
        
        
//请求服务端
        private function reuqestServer():void
        {
            
//创建URLLoader对象
            var urlLoader:URLLoader = new URLLoader();                
            
//设置接收数据方式(文本、原始二进制数据、URL 编码变量);
            urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
            
//设置传递参数
            var urlVars:URLVariables = new URLVariables();
            urlVars.name 
= "go 去服务端";
            
//建立Request访问对象
            var urlRequest:URLRequest = new URLRequest(urlStr);
            
//设置参数
            urlRequest.data = urlVars;
            
//设置访问模式(POST,GET)
            urlRequest.method = URLRequestMethod.POST;
            
            
try
            {
                urlLoader.load(urlRequest);
            }
            
catch(error:Error)
            {
                trace(error)
            }
            
            
//加载完成
            urlLoader.addEventListener(Event.COMPLETE, urlLoaderCompleteHandler);
            
//开始访问
            urlLoader.addEventListener(Event.OPEN, urlLoaderOpenHandler);
            
//加载进度
            urlLoader.addEventListener(ProgressEvent.PROGRESS, urlLoaderProgressHandler);
            
//跨域访问安全策略
            urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, urlLoaderSecurityErrorHandler);
            
//Http状态事件
            urlLoader.addEventListener(HTTPStatusEvent.HTTP_STATUS, urlLoaderHttpStatusHandler);    
            
//访问出错事件
            urlLoader.addEventListener(IOErrorEvent.IO_ERROR, urlLoaderIoErrorHandler);        
        }
        
        
        private 
function urlLoaderCompleteHandler(e:Event):void
        {            
            
var txt:TextField = new TextField();
            txt.wordWrap 
= true;
            txt.width 
= 300;
            txt.type 
= TextFieldType.DYNAMIC;
            txt.text 
= "数据请求完成,返回数据为:" + e.target.data.success;
            txt.y 
= 40;
            txt.multiline 
= true;
            
this.addChild(txt);
        }
        
        private 
function urlLoaderOpenHandler(e:Event):void
        {
            
var txt:TextField = new TextField();            
            txt.text 
= "连接已经打开";
            txt.multiline 
= true;
            txt.y 
= 20;
            
this.addChild(txt);
        }
        
        private 
function urlLoaderProgressHandler(e:ProgressEvent):void
        {
            
var num:uint = (e.bytesLoaded / e.bytesTotal) * 100;
            
var txt:TextField = new TextField();
            txt.text 
= num + "%";
            txt.y 
= 0;
            
this.addChild(txt);            
        }
        
        private 
function urlLoaderSecurityErrorHandler(e:SecurityErrorEvent):void
        {
            trace(e);
        }
        
        private 
function urlLoaderHttpStatusHandler(e:HTTPStatusEvent):void
        {
            trace(e);
        }
        
        private 
function urlLoaderIoErrorHandler(e:IOErrorEvent):void
        {
            trace(e);
        }
    }
}

java code:

TestHttpService.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path 
= request.getContextPath();
String basePath 
= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<%
    request.setCharacterEncoding(
"utf-8");
    String username
=request.getParameter("name");
    username 
+= " 去客户端";
    out.clear();
     out.print(
"success="+ username );
     System.out.print(username);
%>
原文地址:https://www.cnblogs.com/sange/p/1658729.html