我的第一个REST客户端程序!

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 plaincopy

  1. unit Unit2;
  2. interface
  3. uses
  4. Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  5. System.Classes, Vcl.Graphics,
  6. Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IPPeerClient, Vcl.StdCtrls, REST.Client,
  7. Data.Bind.Components, Data.Bind.ObjectScope;
  8. type
  9. TForm2 = class(TForm)
  10. RESTClient1: TRESTClient;
  11. RESTRequest1: TRESTRequest;
  12. RESTResponse1: TRESTResponse;
  13. Button1: TButton;
  14. Memo1: TMemo;
  15. Edit1: TEdit;
  16. Label1: TLabel;
  17. procedure Button1Click(Sender: TObject);
  18. private
  19. { Private declarations }
  20. public
  21. { Public declarations }
  22. end;
  23. var
  24. Form2: TForm2;
  25. implementation
  26. uses System.json;
  27. {$R *.dfm}
  28. procedure TForm2.Button1Click(Sender: TObject);
  29. var
  30. JO, JData: TJSONObject;
  31. code: string;
  32. temp: string;
  33. begin
  34. RESTClient1.BaseURL := ‘http://ip.taobao.com//service/getIpInfo.php?ip=‘ +
  35. trim(Edit1.Text);
  36. RESTRequest1.Execute;
  37. // 清理先前数据
  38. Memo1.Clear;
  39. Memo1.Lines.Add(‘请求时间:‘ + Formatdatetime(‘yyyy-mm-dd hh:mm:ss zzz‘, now)
  40. + #13#10);
  41. // 在memo中显示得到数据
  42. temp := temp + ‘原始数据:‘ + #13#10;
  43. temp := temp + RESTResponse1.Content + #13#10;
  44. Memo1.Lines.Add(temp);
  45. // 解析得到的JSON数据
  46. JO := TJSONObject.ParseJSONValue(RESTResponse1.Content) as TJSONObject;
  47. // 得到错误编号
  48. code := (JO.Get(‘code‘).JsonValue as TJSONString).ToString;
  49. if code = ‘0‘ then
  50. begin
  51. // 解析具体数据
  52. JData := JO.Get(‘data‘).JsonValue as TJSONObject;
  53. temp := ‘解析的详细数据‘ + #13#10;
  54. // ISP
  55. temp := temp + ‘ I S P:‘ + (JData.Get(‘isp‘).JsonValue as TJSONString)
  56. .ToString + #13;
  57. Memo1.Lines.Add(temp);
  58. // 国家
  59. temp := ‘国家:‘ + (JData.Get(‘country‘).JsonValue as TJSONString)
  60. .ToString + #13;
  61. Memo1.Lines.Add(temp);
  62. // 地区
  63. temp := ‘地区:‘ + (JData.Get(‘area‘).JsonValue as TJSONString).ToString + #13;
  64. Memo1.Lines.Add(temp);
  65. // 省份
  66. temp := ‘省份:‘ + (JData.Get(‘region‘).JsonValue as TJSONString)
  67. .ToString + #13;
  68. Memo1.Lines.Add(temp);
  69. // 城市
  70. temp := ‘城市:‘ + (JData.Get(‘city‘).JsonValue as TJSONString)
  71. .ToString + #13#10;
  72. Memo1.Lines.Add(temp);
  73. end;
  74. end;
  75. end.

源代码下载:

http://download.csdn.net/detail/sunylat/8781273

参考资料:

淘宝IP地址查询

http://ip.taobao.com/instructions.php

http://blog.csdn.net/maxwoods/article/details/24265667

http://www.cnblogs.com/xalion/p/3370459.html

http://blog.csdn.net/sunylat/article/details/41407945

http://blog.csdn.net/sunylat/article/details/46399987

时间: 2024-09-29 05:33:36

我的第一个REST客户端程序!的相关文章

UWP使用AppService向另一个UWP客户端应用程序提供服务

原文:UWP使用AppService向另一个UWP客户端应用程序提供服务 在上篇里,我使用的是寄宿在WPF上的WCF进行两个程序间的通信,在解决问题的同时,我的同事也在思考能否使用UWP来做这件事.于是,我们发现了App Service,两个UWP应用沟通的桥梁. App Service以background task 的形式允许一个UWP向其它UWP提供服务. 首先我们新建一个名为"MyCalculatorService"的Windows Runtime Component项目,新建

简单的客户端程序

今天, 我在写控制小车的上位机程序, 要发送指令给小车的wifi模块,  所以我需要编写客户端程序, 因为wifi模块已配置成了服务器. 客户端要连接服务器, 需要知道服务器的IP地址, 不是它的IPV4的地址, 而是它的默认路由IP, 然后是指定端口号.   IP确定同一网络下的主机位置, 端口号确定主机上我要通信的进程. 知道了关键部分(原理),接下来就是怎么编程了. *****************************************  图解 ****************

ASP.NET MVC Web API 学习笔记---第一个Web API程序

http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html 1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过在浏览器中使用 JavaScript来创建更丰富的HTML体验.所以我相信Web API会越来越有它的用武之地. 说道Web API很多人都会想到Web服务,但是他们仍然有

Excel服务器待办事宜提醒客户端程序 [2014.03.19 日更新]

软件可以免费使用,作者仅保留一个版权声明于待办事宜提醒的状态栏处. 适用版本:Excel服务器9.2版及以上版本均支持. 欢迎大家提意见!联系QQ:303629685[Excel服务器待办事宜提醒客户端程序 20140113更新]        1.修复查询语句的小错误.        2.服务器端设置后,自动带出已设置的服务器端除密码外的相关信息.        3.客户端提醒设置后,自动带出已设置的客户端除密码外的相关信息.[Excel服务器待办事宜提醒客户端程序 20140109更新] 

Netty入门二:开发第一个Netty应用程序

    既然是入门,那我们就在这里写一个简单的Demo,客户端发送一个字符串到服务器端,服务器端接收字符串后再发送回客户端. 2.1.配置开发环境 1.安装JDK 2.去官网下载jar包 (或者通过pom构建) 2.2.认识下Netty的Client和Server 一个Netty应用模型,如下图所示,但需要明白一点的是,我们写的Server会自动处理多客户端请求,理论上讲,处理并发的能力决定于我们的系统配置及JDK的极限. Client连接到Server端 建立链接发送/接收数据 Server端

利于Wininet创建一个FTP客户端的步骤

Wininet是Win32关于网络的API,MFC也有对于Wininet的封装,可以利用这组API实现FTP和HTTP通信. Wininet API的头文件:Wininet.下面是Wininet建立FTP客户端的一般步骤.第一步:初始话Wininet,实际上就是设置一些关于是否使用代理,访问方式等的参数.第二步:建立一个FTP链接.第三步:操作ftp服务器上的文件.第四步:关闭各种句柄. 作用 函数原型 说明 初始Wininet函数 HINTERNET InternetOpen( LPCTSTR

【转载】ASP.NET MVC Web API 学习笔记---第一个Web API程序

1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过在浏览器中使用 JavaScript来创建更丰富的HTML体验.所以我相信Web API会越来越有它的用武之地. 说道Web API很多人都会想到Web服务,但是他们仍然有一定的区别:Web API服务是通过一般的 HTTP公开了,而不是通过更正式的服务合同 (如SOAP)  2. ASP.NET

【WCF】创建第一个WCF应用程序

一.什么是WCF: Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,也可以说是一套软件开发包.WCF合并了Web服务..net Remoting.消息队列和Enterprise Services的功能并集成在Visual Studio中.WCF专门用于面向服务开发. WCF的最终目标是通过进程或不同的系统.通过本地网络或是通过Internet收发客户和服务之间的消息.并为服务提供直接的支持.托管.安全.事务管理.离线对立等等

c++下基于windows socket的单线程服务器客户端程序

今天自己用编写了一个简单的c++服务器客户端程序,注释较详细,在此做个笔记. windows下socket编程的主要流程可概括如下:初始化ws2_32.dll动态库-->创建套接字-->绑定地址信息-->服务器进行监听/客户端连接服务器-->数据交换-->关闭套接字对象. 服务器端: 1 #include <Winsock2.h> 2 #include <Ws2tcpip.h> 3 #include <iostream> 4 5 #prag