• 用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);
    %>
  • 相关阅读:
    iOS开发网络篇—GET请求和POST请求
    iOS开发网络篇—HTTP协议
    iOS开发网络篇—搭建本地服务器
    iOS开发网络篇—网络编程基础
    编程生涯
    使用NSURLSession实现断点续传
    定义设置颜色的RGB值的宏
    IB_DESIGNABLE的使用
    java文件和目录的增删复制
    Android离线语音识别(PocketSphinx)
  • 原文地址:https://www.cnblogs.com/sange/p/1658729.html
Copyright © 2020-2023  润新知