首先吐槽一下XE关于datasnap的资料真的是太少了。。。


  1. 服务端用DSHTTPService1控件可以实现http接口方式的调用,返回的都是json格式数据,适用于跨平台解析。
  2. 这里着重强调一下datasnap http方式默认为Get方式调用,如果用Post方式的话需要在TServerMethods1单元方法前加update,好无语的方式。。
  3. 参数传递:用Get方式这里说一下如果接口有参数的情况下,传递格式为 接口名/参数1/参数2/……,比如:http://127.0.0.1:8080/datasnap/rest/TServerMethods1/接口名/tom/jerry。

另外如果参数里有中文的话需要对参数编码一下,用TIdURI.ParamsEncode方法即可,不过最好重写一下这个方法,因为rest协议参数是以"/"来分割的,所以接口有参数的话请把每个参数内容重新编码再加上“/”字符拼接发送过去。

客户端调用接口后,datasnap中间件返回的json数据对中文进行了编码,在客户端继续用json编码一下即可,xe自带json解析方法,D7的话可以用superobject单元(第三方)。

客户端调用例子如下:

procedure TForm2.Button1Click(Sender: TObject);
var
lrlt: TStringStream;
s,lurl: string;
jo: TJSONObject;
i: Integer;
begin
lrlt := TStringStream.Create('');
try
lurl := edtUrl.Text;
lurl := lurl + TIdURI.ParamsEncode('/name/啊啊啊');
IdHTTP1.Get(lurl,lrlt);
jo := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(lrlt.DataString),) as TJSONObject;
//返回表格字段个数
i := TJSONArray(TJSONObject(TJSONArray(jo.GetValue('result')).Items[]).GetValue('table')).Count;
mmLog.Lines.Add(IntToStr(i));
finally
lrlt.Free;
end;
end;

datasnap rest Windows客户端编写的更多相关文章

  1. 在windows下的hdfs客户端编写

    在windows下的hdfs客户端编写 新建一个工程,右键 properties -> java build path -> libraries 和之前一样的操作,这次 new 一个 us ...

  2. 2 weekend110的HDFS的JAVA客户端编写 + filesystem设计思想总结

    HDFS的JAVA客户端编写  现在,我们来玩玩,在linux系统里,玩eclipse 或者, 即,更改图标,成功 这个,别慌.重新换个版本就好,有错误出错是好事. http://www.eclips ...

  3. GitHub的Windows客户端的使用教程

    GitHub for Windows客户端的使用教程 什么是Github >说到什么是GitHub,我们先看wikipedia的描述“GitHub是一个利用Git进行版本控制.专门用于存放软件代 ...

  4. 使用GitHub for Windows客户端管理京东代码库项目

    1.下载并安装 GitHub for Windows 客户端 https://windows.github.com/ 2.在京东代码库中新的代码库,可以创建私有的代码库 https://code.jd ...

  5. 如何在windows中编写R程序包(转载)

    网上有不少R包的编译过程介绍,挑选了一篇比较详细的,做了稍许修改后转载至此,与大家分享 如何在windows中编写R程序包 created by helixcn modified by binaryf ...

  6. windows客户端连接到samba服务器(如何使用samba)

    首先确保你的服务端已经配置好samba并成功启动服务,方法可参考此文章http://blog.csdn.net/linglongwunv/archive/2010/01/19/5212875.aspx ...

  7. git的CentOS服务端安装和windows客户端的使用

    git的CentOS服务端安装和windows客户端的使用 此教程以 搬瓦工vps CentOS 6 x64 的系统为环境,搭建 git 服务端.windows 7 系统为客户端. git客户端 在W ...

  8. HDFS的Java客户端编写

    总结: 之前在教材上看hdfs的Java客户端编写,只有关键代码,呵呵…….闲话不说,上正文. 1. Hadoop 的Java客户端编写建议在linux系统上开发 2. 可以使用eclipse,ide ...

  9. windows客户端走代理上网

    前提:在大型网络中,由于众多服务器及安全性考虑,内网服务器是不能上外网的,但是为了满足某些服务的需要,一定会搭建代理服务器的. 以下是windows客户端走代理服务器的操作:       两下确定就可 ...

随机推荐

  1. SAP ECC6安装系列四:安装过程详解

    原作者博客 http://www.cnblogs.com/Michael_z/ ======================================== 续接上篇,我们终于按下了 “Next” ...

  2. Android——问题解决之adb not responding;adb不是内部或外部命令;path变量的默认值为多少

    adb not responding 恩,这是出现的问题.我们开始来解决它吧! 出现这种问题大多是因为adb端口被占用导致这个问题,所以只要找到占用端口号程序,结束即可!就是这么简单(adb运行端口号 ...

  3. linux内核对中断的处理方式

    中断取代了轮询的通知方式,DMA取代了轮询的读写数据方式. 分类软件指令造成的中断(又叫异常,同步中断).    svc, und, abt硬件通过中断请求信号造成的中断(异步中断).  irq,fi ...

  4. SDRAM基础

    一. 介绍 存储器的最初结构为线性,它在任何时刻,地址线中都只能有一位有效.设容量为N×M的存储器有S0-Sn-1条地址线:当容量增大时,地址选择线的条数也要线性增多,利用地址译码虽然可有效地减少地址 ...

  5. 面试常问小知识点之Integer

    背景 今天在查看Sonar的时候发现小伙伴在某些场景下如下使用 很明显sonar已经报错了,但是线上应用目前是正常的 问题 事实上经常会有面试的小伙伴或者笔试的小伙伴问这个问题 Integer的一些小 ...

  6. 在 Java 8 中获取日期

    前言 前面一篇文章写了<SimpleDateFormat 如何安全的使用?>, 里面介绍了 SimpleDateFormat 如何处理日期/时间,以及如何保证线程安全,及其介绍了在 Jav ...

  7. 实现Easyui 可编辑表格

    一.前端框架使用的easyui框架 二.后端使用的是jfinal 三.效果图 四.html代码 <div id="table_tree" class="easyui ...

  8. CSS实现文字半透明显示在图片上方法

    CSS实现文字半透明显示在图片上方法 在css中文字半透明我们会需要使用滤镜效果也就是css中的filter:alpha来实现了,下面来看两个文字显示在图片上并且半透明的例子. CSS让一行文字显示在 ...

  9. google cloud之查看任务任务过程

    点击侧边栏的logging

  10. 分享在github超酷超炫特效动画,不看你会懊悔的。

    有图有真相直接上效果图,有须要的朋友们能够到连接上去下载. 下载地址:https://github.com/ChrisRenke/DrawerArrowDrawable 下载地址:https://gi ...