`
steely816
  • 浏览: 129360 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

flex4与java通信-HttpRequest方式

    博客分类:
  • flex
阅读更多

说明:这里介绍使用URLRequest+URLLoader与java服务端servlet通信.

URLRequest 类

URLRequest 类可捕获单个 HTTP 请求中的所有信息。

URLVariables 类

使用 URLVariables 类可以在应用程序和服务器之间传输变量。

URLRequestMethod 类

该类只有两个静态常量值, 一个是POST, 一个是GET, 可以把它当作是一个枚举类型, 用于指定URL请求时使用POST方式或是GET方式.

URLLoader 类

真正与服务端打交道的类, 通过load方法把一个Reuqest发送给服务端, 在load之前必须给该对象添加一个Complete事件的监听器,接收服务器返回的信息. 传输过程中有可能产生IO错误, 有必要时可以为该对象添加IOError监听器.

例子:
var request: URLRequest = new URLRequest( );

//指定 rquest地址

request.url=" 指定rquest地址";

//默认为 URLRequestMethod.GET, 若使用GET方式可以不指定
request.method = URLRequestMethod.POST;

//创建一个参数变量对象,用于保存所有向服务发送的参数数据, GET方式可以不使用
var vars: URLVariables = new URLVariables ();
vars["varName"] = varValue; //把参数键,值对放到vars对象中.
vars["var2Name"] = var2Value;
request.data = vars;  //把参数对象放进Request对象中作为参数

// 通过request对象创建一个loader,
var loader: URLLoader = new URLLoader(request);


事件及返回值的处理

loader.addEventListener( // 给loader对象添加完成时的监听器.
Event.COMPLETE,
function(e: Event):void  //临时定义一个监听器
{
  // 服务端返回的数据是保存在loader的data里,通过以下语句可以得到
  trace(URLLoader(e.target).data );//在监听器里处理服务端返回的数据
  //complete
  // process the data;
}
);

loader.addEventListener( //IOError 监听器
IOErrorEvent.IO_ERROR,
//临时监听器,IO错误的处理在该函数中处理
function(e: IOErrorEvent): void {/* process the err;*/}
);
loader.load(request);// 把request对象发送到服务端.当请求完成,则会自动触发COMPLETE事件

下面给出一个实例:
<?xml version="1.0" encoding="utf-8"?>  
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"   
			   xmlns:s="library://ns.adobe.com/flex/spark"   
			   xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">  
	<fx:Script>  
		<!--[CDATA[ 
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			import mx.utils.URLUtil; 
			
			
			protected function ok_clickHandler(event:MouseEvent):void 
			{ 
				var uv:URLVariables = new URLVariables("name=zc&age=22&address=ChongQing China");   
				/*  
				也可以是这种方式 
				var vars: URLVariables = new URLVariables (); 
				vars["varName"] = varValue; //把参数键,值对放到 vars对象中. 
				vars["var2Name"] = var2Value;  
				*/   
				var request:URLRequest = new URLRequest(); 
				request.url = "http://localhost:8080/httpdemo/servlet/HttpTestServlet";
				request.method = URLRequestMethod.POST;   
				request.data = uv;   
				
				var loader:URLLoader = new URLLoader();           
				loader.load(request);   
				
				loader.addEventListener(Event.COMPLETE,txtCompleteHandler); // 注册请求完成后 响应获取数据事件方法   
			} 
			
			private function txtCompleteHandler(e:Event):void   
			{   
				
				var loader:URLLoader = URLLoader(e.target);   
				/* URLUtil的stringToObject方法解释 
				从字符串返回对象。字符串包含 name=value 对,它们成为返回对象的动态属性。这些属性对由指定的 separator 分隔。该方法可转换数字、布尔值、数组(由“[]”定义)以及子类(由“{}”定义)。默认情况下,%XX 格式的 URL 模式将转换为相应的字符串字符。  
				例如:  
				var s:String = "name=Alex;age=21"; 
				var o:Object = URLUtil.stringToObject(s, ";", true);         
				返回对象:{ name: "Alex", age: 21 }。 
				*/ 
				//直接获取返回值内容:  URLLoader(e.target).data 
				var o:Object = URLUtil.stringToObject(loader.data,";",true); // 使用URLUtil对将数据进行反序列化以方便使用   
				txtName.text =  o.name; 
				txtAge.text = o.age;   
				txtAddress.text = o.address;   
				//labMsg.alpha = 0;   
			} 
		]]-->  
	</fx:Script>  
	<fx:Declarations>  
		
	</fx:Declarations>  
	<s:Panel x="77" y="35" width="287" height="247" title="Form">  
		<s:TextInput x="74" y="107" id="txtAddress"/>  
		<s:TextInput x="74" y="72" id="txtAge"/>  
		<s:TextInput x="74" y="37" id="txtName"/>  
		<s:Button x="98" y="158" label="OK" id="ok" click="ok_clickHandler(event)"/>  
		<s:Label x="22" y="41" text="Name:"/>  
		<s:Label x="35" y="78" text="Age:" height="13"/>  
		<s:Label x="12" y="115" text="Address:" height="13"/>  
	</s:Panel>  
</s:Application> 

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		// 获取URLResuest请求回的参数 返回数据用;分隔以方便Flex对数据进行序列化
		String rs = new String("name=" + request.getParameter("name") + ";age="
				+ request.getParameter("age") + ";address="
				+ request.getParameter("address"));
		response.setContentType("text/plain");
		System.out.println(rs);
		response.getWriter().write(rs);
	}


OK,运行应用程序,you can see:

分享到:
评论

相关推荐

    go-httprequest 简介 Go语言的HTTP请求包,功能特性: 线程安全 链式语法 支持GET,POST,PUT,P

    go-httprequest 简介 Go语言的HTTP请求包,功能特性: 线程安全 链式语法 支持GET,POST,PUT,PATCH,HEAD,DELETE,OPTIONS,TRACE方法 可按间隔时间和最大次数自动重发请求 可定义多个URL轮循请求,当请求失败时自动...

    HttpRequest--java读取http post请求

    java读取接口代码,形如:http://127.0.0.1:8088/hlapp/train/validationCardInfo?a=X&b=X 这样的接口可以用该方法。

    VC 6.0 练习WebBrowser-HttpRequest(http请求捕捉)源码.rar

    VC 6.0 练习WebBrowser-HttpRequest(http请求捕捉)的实例源码,注意,测试时候在地址栏输入地址的话,会被误报为木马,其实并不是木马,只是这种捕捉请求的方式有点不信任,你可以关掉360或其它安全监测软件。

    Flex实例 Flex基础 Web+Flex+LCDS Flex跟Java交互

    4. **Flex与Java交互**:Flex应用可以通过HTTPService、WebService、Remoting等方法与Java后台进行数据交互。AMF通道是Flex与Java集成的常用方式,因为AMF可以大大减少网络传输的数据量和提高性能。在Java端,可以...

    HttpRequest.java下载

    HttpRequest.java程序源码下载

    HttpRequest.java-master.rar

    标题中的"HttpRequest.java-master.rar"表明这是一个关于Java编程的项目,主要涉及HttpRequest类,可能是一个开源项目,并且已经过Idea2017版本的测试。这个项目的核心是使用HttpRequest来发送HTTP请求,获取网络...

    httpRequest-6.0.jar

    很好用的http工具,简洁方便,一个jar包搞定,只需把jar包导入项目中即可

    MMM-HTTPRequest:发送具有通知功能的HTTP请求。 它不关心响应主体,仅关心状态。 开火吧,算了!

    MMM-HTTPRequest 这是的扩展。 收到通知后,它可以发送GET HTTP请求。 它不占用镜像上的任何空间,可以将其配置为在请求完成时显示警报消息(HTTP 200 OK)。 我将其与。 请参阅“示例。 这个插件的灵感来自于 。...

    HTTPRequest-lib-master.rar

    标题中的"HTTPRequest-lib-master.rar"表明这是一个与HTTP请求库相关的项目,可能是一个开源库的源码压缩包。这个库主要用于通过HTTP协议从Web服务器获取数据。"master"通常指的是Git仓库中的主分支,意味着这是该...

    通过JavaServlet读取HttpRequest中的XML文件内容

    通过JavaServlet读取HttpRequest中的XML文件内容

    HttpRequest

    这个库使得开发者能够方便地与Web服务器进行交互,无论是进行简单的GET请求获取网页内容,还是复杂的POST请求提交表单数据,HttpRequest都能提供简洁易用的API。 在使用HttpRequest时,首先需要在项目中引入该库。...

    Java中使用HttpRequest获取用户真实IP地址

    主要介绍了Java中使用HttpRequest获取用户真实IP地址,使用本文方法可以避免Apache、Squid、nginx等反向代理软件导致的非真实IP地址,需要的朋友可以参考下

    java-http请求jar包

    Java发送HTTP请求是进行网络通信的基本操作之一,广泛应用于数据获取、API调用等场景。在Java中,Apache HttpClient库是一个强大的工具,它允许开发者高效、灵活地处理HTTP请求。这个"java-http请求jar包"实际上就是...

    OpenS-Asynchronous-Android-HttpRequest:OpenS-Android HttpRequest是适用于Android的异步HTTP客户端,具有缓存,连接限制和易于使用的回调机制

    OpenSÐ异步Android HttpRequest OpenS HttpRequest是用于Android的异步HTTP客户端,具有缓存,连接限制和易于使用的回调机制。 请求是在主UI线程之外执行的,但是回调是在创建请求的同一线程中调用的。 它使用更...

    HttpRequest-Reptile-master.rar

    【HttpRequest-Reptile-master】项目是一个基于Java的爬虫应用,使用了HttpRequest库来实现对网页数据的抓取。这个项目在IDEA2017集成开发环境中已经成功测试运行,意味着它兼容Java 8及以上版本。让我们深入探讨...

    Java后端jodd.http.HttpRequest请求第三方接口代码

    利用jodd.http.HttpRequest,参数为map转json字符串,请求头为map的请求方式,获取第三方接口返回的数据,内负有jodd三件套jar包和fastjson等jar,直接引入代码即可使用

    java 获取HttpRequest Header的几种方法(必看篇)

    在Java Web开发中,获取HttpRequest Header的信息是常见的需求,特别是在实现单点登录(Single Sign-On, SSO)或者处理跨域请求时。本篇文章将详细讲解如何在Java中获取HttpRequest Header的各种方法,这对于理解Web...

    Java对接iOS内购,回调地址验证.zip

    主要是Java对接iOS内购,回调验证相关的方法, 真机测试的时候,一定要退出原来的账号,才能用沙盒测试账号,二次验证,请注意区分宏, 测试用沙盒验证,App Store审核的时候也使用的是沙盒购买,所以验证购买凭证的...

    httpRequest

    《深入理解HTTPRequest的POST与GET方法》 在Web开发中,HTTPRequest是客户端与服务器交互的核心工具,它提供了发送HTTP请求的能力。本文将详细解析HTTPRequest中的两种主要方法:GET和POST,以及它们在实际应用中的...

Global site tag (gtag.js) - Google Analytics