如题。
flex怎么去访问java呢?百度上搜了一大堆,结果呢:1、有说用RemoteObject、有说用httpService的,这些都是flex的web请求服务器;
2、多数是flex请求asp或者.net的,原创的没有几个。
air请求网络用的是URLRequest和urlLoader。
废话不多说了,代码如下:
flex端:
request= new URLRequest("http://127.0.0.1:8080/CairngormProject/appLogin.do");//这里定义定义请求的url以及方法
request.contentType="application/x-www-form-urlencoded";//请求的mime内容类型。这里用的是默认的。如果要上传文件,则要用下面的类型。
//request.contentType="multipart/form-data; boundary="+UploadPostHelper.getBoundary();
request.requestHeaders.push(new URLRequestHeader( 'SOAPAction', 'text/plain'));
request.method=URLRequestMethod.GET;//用get action能够接收到,用post却接收不到,不知道哪里不对,所以就先用get了。
var vari:URLVariables=new URLVariables();
var parameter:Object = new Object();
parameter.userName = userName;
parameter.userPass = userPass;
var parameter2Str:String = com.adobe.serialization.json.JSON.encode(parameter);
vari.str =BaseUtil.getBase64Encoder(parameter2Str);//这儿用base64加密,是因为我传的是json串。里面的一些特殊字符给转义掉了,action接收到后比较难处理。用base64加密后,action接收到经过解密在转成json就可以直接用了
request.data= vari;
var loader:URLLoader = new URLLoader();
loader.dataFormat=URLLoaderDataFormat.BINARY;
try{
loader.load(request);//这里是发送请求
loader.addEventListener(Event.COMPLETE, uploadOnComplete);//自定义的请求成功处理方法
loader.addEventListener(IOErrorEvent.IO_ERROR,onIOError);//自定义的请求失败处理方法
}catch(error:Error){
Alert.show("Unable to load requested document.");
}
java端:
获的flex传递的内容一句话:String data = request.getQueryString();