说明:这里介绍使用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,PATCH,HEAD,DELETE,OPTIONS,TRACE方法 可按间隔时间和最大次数自动重发请求 可定义多个URL轮循请求,当请求失败时自动...
VC 6.0 练习WebBrowser-HttpRequest(http请求捕捉)的实例源码,注意,测试时候在地址栏输入地址的话,会被误报为木马,其实并不是木马,只是这种捕捉请求的方式有点不信任,你可以关掉360或其它安全监测软件。
HttpRequest.java程序源码下载
java读取接口代码,形如:http://127.0.0.1:8088/hlapp/train/validationCardInfo?a=X&b=X 这样的接口可以用该方法。
MMM-HTTPRequest 这是的扩展。 收到通知后,它可以发送GET HTTP请求。 它不占用镜像上的任何空间,可以将其配置为在请求完成时显示警报消息(HTTP 200 OK)。 我将其与。 请参阅“示例。 这个插件的灵感来自于 。...
通过JavaServlet读取HttpRequest中的XML文件内容
HTTPRequest-lib-master IDEA2017测试通过,通过http request 获取网站数据
主要介绍了Java中使用HttpRequest获取用户真实IP地址,使用本文方法可以避免Apache、Squid、nginx等反向代理软件导致的非真实IP地址,需要的朋友可以参考下
HttpRequest 程序 idea2017测试通过,通过HTTP Request获取数据。
OpenSÐ异步Android HttpRequest OpenS HttpRequest是用于Android的异步HTTP客户端,具有缓存,连接限制和易于使用的回调机制。 请求是在主UI线程之外执行的,但是回调是在创建请求的同一线程中调用的。 它使用更...
java 发送http请求 实现网络通信的全部jar包合集。 httpcomponents-client-4.5.5.rar
通过对httpRequest进行封装,可以更好的使用这个请求的方法。包括常用的post,get请求和结果的处理
下面小编就为大家带来一篇java 获取HttpRequest Header的几种方法(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
HttpRequest(1).java
HttpRequest 解析数据 操作简单 用法易懂
HTTPRequest-Reptile-master IDEA2017测试通过,通过http request 获取网站数据,爬虫应用
很好用的http工具,简洁方便,一个jar包搞定,只需把jar包导入项目中即可
(HttpWebRequest)WebRequest.Create(strUrlLine); 15. httpReq.Method = strHttpMethod; ... if (String.Compare(strHttpMethod, METHOD_POST, true) == 0) 17. { // POSTのI場e合? ...bufBody = encAsc.GetBytes...
C#的wpf客户端使用HttpWebRequest模拟网页表单提交数据到Java的web服务端,Java服务端使用commons-fileupload.jar,Spring接受数据。 ********************************** *该程序可以同时提交表单数据和上传文件* ...