Delphi Xe DataSnap Rest + Flex 开发 基本探索6(flex 前台 Post 字节流 参数)
2014-09-04 16:13
585 查看
在看本文章前请 参考前面的文章
这篇文章 介绍 flex 如何 在调用delphi datasnap 的Rest服务过程中以 大量的数据为参数 (字节流 )
该方法 在网络上 基本没有资料,废掉了我无数的脑细胞啊,再次 bs emb 帮助太操蛋了
首先 大量的数据不能通过前面的方式 直接写在Rest 地址的后面.
我用了http post 方法
效果如下
![](http://img.blog.csdn.net/20140904161552218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVjb25nemhlbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这是flex 前台传输到后代的 字节码,后台代码如下
主要 是参数为Tjsonobject
前台 主要是传输了一个 jpg的图片
![](http://img.blog.csdn.net/20140904161801468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGVjb25nemhlbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
前台代码如下
注意
哎摸索上面的方法,真是不容易啊,,再次bs emb 为啥 资料不搞详细点,李维老师的 datasnap 实战 的书籍 中的介绍也 感觉很粗糙......希望李老师能再出几本精品的书籍啊.....
这篇文章 介绍 flex 如何 在调用delphi datasnap 的Rest服务过程中以 大量的数据为参数 (字节流 )
该方法 在网络上 基本没有资料,废掉了我无数的脑细胞啊,再次 bs emb 帮助太操蛋了
首先 大量的数据不能通过前面的方式 直接写在Rest 地址的后面.
我用了http post 方法
效果如下
这是flex 前台传输到后代的 字节码,后台代码如下
function TSMTest.updateSetBytes(stream:TJSONObject): string; var i:integer; begin FrmMain.Memo1.Lines.Add('jsonValue:'+(stream.ToString)); end;
主要 是参数为Tjsonobject
前台 主要是传输了一个 jpg的图片
前台代码如下
var fileReference:FileReference = new FileReference(); protected function btnUpLoad_clickHandler(event:MouseEvent):void { fileReference.addEventListener(Event.SELECT, onSelect); fileReference.addEventListener(Event.COMPLETE,onComplete); //urlRequest = new URLRequest("http://localhost:8666/Ashx/FileHandler.ashx"); browse(); } private function onSelect(evt:Event):void{ labstate.text="文件:"+fileReference.name+" "+"大小:"+fileReference.size+"字节"; fileReference.load(); } private function onComplete(evt:Event):void{ imgUpload.source=fileReference.data; var read :ReadDataFromServer = new ReadDataFromServer(); read.onLoadComplete = onBytesParam; var barr:ByteArray= fileReference.data; barr.position =0; var arr:Array = new Array(); for(var i:int=0;i<barr.length;i++){ arr.push(barr.readUnsignedByte()); } var ubArr:ByteArray = new ByteArray(); for( i=0;i<arr.length;i++){ ubArr.writeUnsignedInt(arr[i]); } var str :String ='{"Array":['+ JSON.encode(arr)+"]}"; read.PostJson('datasnap/rest/TSMTest/SetBytes',str); /////////////////////////////////////////// } public function onBytesParam(e:Event):void{ } private function browse():void{ var imageTypes:FileFilter = new FileFilter("图片 (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif; *.png"); var allTypes:Array = new Array(imageTypes); try { fileReference.browse(allTypes); } catch(e:Error) { Alert.show(e.message+"&&"+e.getStackTrace()); } }
注意
'datasnap/rest/TSMTest/SetBytes'这个方法,后台必须 在方法名 加上 update 这个头,不知道为什么....
哎摸索上面的方法,真是不容易啊,,再次bs emb 为啥 资料不搞详细点,李维老师的 datasnap 实战 的书籍 中的介绍也 感觉很粗糙......希望李老师能再出几本精品的书籍啊.....
相关文章推荐
- Delphi Xe DataSnap Rest + Flex 开发 基本探索4(返回字节流 stream)
- Delphi Xe DataSnap Rest + Flex 开发 基本探索1
- Delphi Xe DataSnap Rest + Flex 开发 基本探索2(取得Json 数组)
- Delphi Xe DataSnap Rest + Flex 开发 基本探索3(取得后台 DataSet 数据集)
- Delphi Xe DataSnap Rest + Flex 开发 基本探索5(Rest 服务参数传递)
- 我的在线讨论和白皮书关于Delphi XE开发REST服务用DataSnap
- delphi datasnap 服务器 接受 Post Get 方式的参数
- xe2升级到xe6后 DataSnap Rest POST调用 参数中出现中文乱码
- delphi xe datasnap rest 相關
- Delphi XE程序设计系列 2-开发DataSnap/REST服务器 .
- (DELPHI_XE)Datasnap 'ERROR_CODE'. The allowed range is 0 to 4294967295'
- 桥接让XE2 DATASNAP中间层支持DELPHI低版本开发客户端
- idhttp.post方式 调用datasnap rest 远程方法
- idhttp.post方式 调用datasnap rest 远程方法
- idhttp.post方式 调用datasnap rest 远程方法
- ASP如何调用Delphi开发的DataSnap/Restful接口服务
- delphi XE Datasnap SERVER 在windows 7 下为服务添加描述信息
- idhttp.post方式 调用datasnap rest 远程方法
- Delphi XE程序设计系列 2-开发DataSnap/REST服务器
- Delphi XE程序设计系列 2-开发DataSnap/REST服务器