首先吐槽一下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. 客户端在向服务器的动态页发出请求的时候,服务器才会创建session

    注意,纯的HTML页面很有可能导致服务器不会为用户创建session,即便是新到的用户也是如此. 在某些情况下也可能与服务器的具体配置有关系. 尤其是在对session进行监听的时候要注意这一点.

  2. Vanya and Brackets

    Vanya and Brackets Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u ...

  3. Linux下C语言的调试

    调试是每个程序员都会面临的问题. 如何提高程序员的调试效率, 更好更快地定位程序中的问题从而加快程序开发的进度, 是大家共同面对的问题. 可能Windows用户顺口就会说出:用VC呗 :-) , 它提 ...

  4. c#生成方案里预生成拷贝文件

    我们在做项目时,可能是多人合作,这样每个人的目录层次级别是不一样的,如果用VS自带的OUTPUT输出目录,改变路径,把DLL集中生成到一个文件夹,那么不同人的机器上结果是不一样的,这就造成了,我这台机 ...

  5. Android——初学

  6. ajax——用ajax写用户注册

    zhuce.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  7. PHP——分页显示的完善(加查询,用类简化sql语句)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. maven编译插件版本配置案例

    <!-- Build Settings 构建设置 --> <build> <finalName>${project.artifactId}</finalNam ...

  9. 最新Android面试题集锦

    近期由于某些原因想换工作,整理一下个人认为面试中还比較值得记录的一些题目,给须要找这方面工作的人一个借鉴. 下面基本仅仅记录题目或者大概答案,假设大家有比較具体的解答或者比較好的面试题木,希望各位看到 ...

  10. Sublime Text 模版插件: SublimeTmpl

    开发者的插件介绍页面:http://www.fantxi.com/blog/archives/sublime-template-engine-sublimetmpl/ 写了个sublime的模版插件, ...