首页 > Windows开发 > 详细

datasnap rest Windows客户端编写

时间:2016-09-27 22:46:04      阅读:424      评论:0      收藏:0      [点我收藏+]

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

服务端用DSHTTPService1控件可以实现http接口方式的调用,返回的都是json格式数据,适用于跨平台解析。

这里着重强调一下datasnap http方式默认为Get方式调用,如果用Post方式的话需要在TServerMethods1单元方法前加update,好无语的方式。。

用Get方式这里说一下如果接口有参数的情况下,传递格式为 接口名/参数1/参数2/……,比如:http://127.0.0.1:8080/datasnap/rest/TServerMethods1/接口名/tom/jerry。

另外如果参数里有中文的话需要对参数编码一下,用TIdURI.ParamsEncode方法即可。

客户端调用接口后,datasnap中间件返回的json数据对中文进行了编码,在客户端继续用json编码一下即可。

客户端调用例子如下:

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),0) as TJSONObject;
    //返回表格字段个数
    i := TJSONArray(TJSONObject(TJSONArray(jo.GetValue(result)).Items[0]).GetValue(table)).Count;
    mmLog.Lines.Add(IntToStr(i));
  finally
    lrlt.Free;
  end;
end;

 

datasnap rest Windows客户端编写

原文:http://www.cnblogs.com/hejoy91/p/5914399.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!