REST的小例子

来源:互联网 发布:淘宝怎么复制别人装修 编辑:程序博客网 时间:2024/06/08 06:44

Delphi:XE8

看了好几天的资料了,也没有弄出来一个REST程序,尝试了XE8中带的例子,也都没有搞懂。我在网上不断搜索,看是否能够找到适合自己的文章,希望能够做出来一个REST的小例子,万幸,终于弄出来一个了!

这个小程序是把IP地址发送到淘宝的REST API,得到淘宝IP库返回的解析结果,先看看运行效果吧!


这是一个REST客户端程序,既然自己暂时编不出来REST服务器,那么最简单就是找一个可以尝试的REST服务器,所以我用这种方法先编一个RESET客户端程序,对REST程序了解一下!我们先看看我这个小程序使用了哪些控件:


RESTClient1: TRESTClient;:是REST客户端管理类。

RESTRequest1: TRESTRequest;:负责REST请求相关的工作,处理请求用的参数等。

 RESTResponse1: TRESTResponse:负责REST请求返回的结果,HTTP状态码和返回结果等。

这个小程序的整个单元的源代码在下面:

[delphi] view plain copy
  1. unit Unit2;  
  2.   
  3. interface  
  4.   
  5. uses  
  6.   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,  
  7.   System.Classes, Vcl.Graphics,  
  8.   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IPPeerClient, Vcl.StdCtrls, REST.Client,  
  9.   Data.Bind.Components, Data.Bind.ObjectScope;  
  10.   
  11. type  
  12.   TForm2 = class(TForm)  
  13.     RESTClient1: TRESTClient;  
  14.     RESTRequest1: TRESTRequest;  
  15.     RESTResponse1: TRESTResponse;  
  16.     Button1: TButton;  
  17.     Memo1: TMemo;  
  18.     Edit1: TEdit;  
  19.     Label1: TLabel;  
  20.     procedure Button1Click(Sender: TObject);  
  21.   private  
  22.     { Private declarations }  
  23.   public  
  24.     { Public declarations }  
  25.   end;  
  26.   
  27. var  
  28.   Form2: TForm2;  
  29.   
  30. implementation  
  31.   
  32. uses System.json;  
  33.   
  34. {$R *.dfm}  
  35.   
  36. procedure TForm2.Button1Click(Sender: TObject);  
  37. var  
  38.   JO, JData: TJSONObject;  
  39.   code: string;  
  40.   temp: string;  
  41. begin  
  42.   
  43.   RESTClient1.BaseURL := 'http://ip.taobao.com//service/getIpInfo.php?ip=' +  
  44.     trim(Edit1.Text);  
  45.   RESTRequest1.Execute;  
  46.   
  47.   // 清理先前数据  
  48.   Memo1.Clear;  
  49.   
  50.   Memo1.Lines.Add('请求时间:' + Formatdatetime('yyyy-mm-dd hh:mm:ss zzz', now)  
  51.     + #13#10);  
  52.   
  53.   // 在memo中显示得到数据  
  54.   temp := temp + '原始数据:' + #13#10;  
  55.   temp := temp + RESTResponse1.Content + #13#10;  
  56.   Memo1.Lines.Add(temp);  
  57.   
  58.   // 解析得到的JSON数据  
  59.   JO := TJSONObject.ParseJSONValue(RESTResponse1.Content) as TJSONObject;  
  60.   
  61.   // 得到错误编号  
  62.   code := (JO.Get('code').JsonValue as TJSONString).ToString;  
  63.   
  64.   if code = '0' then  
  65.   begin  
  66.   
  67.     // 解析具体数据  
  68.     JData := JO.Get('data').JsonValue as TJSONObject;  
  69.   
  70.     temp := '解析的详细数据' + #13#10;  
  71.   
  72.     // ISP  
  73.     temp := temp + ' I S P:' + (JData.Get('isp').JsonValue as TJSONString)  
  74.       .ToString + #13;  
  75.     Memo1.Lines.Add(temp);  
  76.   
  77.     // 国家  
  78.     temp := '国家:' + (JData.Get('country').JsonValue as TJSONString)  
  79.       .ToString + #13;  
  80.     Memo1.Lines.Add(temp);  
  81.   
  82.     // 地区  
  83.     temp := '地区:' + (JData.Get('area').JsonValue as TJSONString).ToString + #13;  
  84.     Memo1.Lines.Add(temp);  
  85.   
  86.     // 省份  
  87.     temp := '省份:' + (JData.Get('region').JsonValue as TJSONString)  
  88.       .ToString + #13;  
  89.     Memo1.Lines.Add(temp);  
  90.   
  91.     // 城市  
  92.     temp := '城市:' + (JData.Get('city').JsonValue as TJSONString)  
  93.       .ToString + #13#10;  
  94.     Memo1.Lines.Add(temp);  
  95.   
  96.   end;  
  97.   
  98. end;  
  99.   
  100. end.  
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 雨伞的铁丝掉了怎么办 手机银行验证码忘了怎么办 应用安装验证码忘了怎么办 大王卡激活码找不到了怎么办 信用卡的激活码找不到怎么办 育碧账号忘了怎么办 uplay八折券丢了怎么办 不小心按到了育碧解绑怎么办 台式电脑连不上网怎么办 重装系统也安装不了cad怎么办 染发灰色偏绿了怎么办 vgm数据填错了怎么办 克里格插值 不符合正态分布怎么办 克里金插值无效的输出范围怎么办 穿完臭袜子要洗手吗不洗怎么办 超敏c反应蛋白117怎么办 钢铁雄心4无模板怎么办 登录 新浪微博登录异常怎么办 微博授权失败怎么办qq uc微博授权失败怎么办 苹果手机无线网坏了怎么办 小米手机wife信号不好怎么办 微博出错了c403怎么办 微信客服没人接怎么办 安装包解析错误怎么办平板 苹果手机新浪免费邮箱用不了怎么办 苹果手机老是弹跳邮箱登陆怎么办 qq长时间不登录上不了怎么办 父母不会说英语怎么办英国签证 美军舰真来台湾怎么办 现役军人回家探亲和人打架怎么办 对四六不懂的人怎么办 赌球小2.5进3球怎么办 皮肤旧伤黑色斑怎么办 小米5c网络不好怎么办 小米去5c卡怎么办 戴尔游匣5577开机黑屏怎么办 三星s6的通知栏拉不下来怎么办 电脑记住密码打不开了怎么办 联想手机升级系统失败了怎么办 日本语言学校申请研究生签证怎么办