datasnap rest Windows用戶端編寫

來源:互聯網
上載者:User

標籤:

首先吐槽一下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用戶端編寫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.