自定HTTP Client客户端
# Smart之自定HTTP Client客户端
- 文档号:S-EQ-DEM-2030
# 1. 功能
采用HTTP协议,通过HTTP访问数据服务器的功能,该示例需与Smart之HTTP Server服务器配合使用。在使用本范例前请先启动HTTP Server服务器的范例。
通过本范例学习,您可以掌握Smart智慧控制平台访问HTTP服务器的功能。
# 2. 设计明细
开启Smart智慧控制平台,分别加入下插图之控件。或者通过点击菜单栏[文件]-[打开项目]选择范例项目文件来打开该范例。

①:TImage组件,控件名称为Image1。
②:TLabel组件,控件名称为Label2。
③:TLabel组件,控件名称为Label1。
④:TEdit组件,控件名称为EditHost。
⑤:TLabel组件,控件名称为Label3。
⑥:TEdit组件,控件名称为EditPort。
⑦:TImage组件,控件名称为ImageSend。
⑧:TMemo组件,控件名称为Memo1。
⑨:TLabel组件,控件名称为Label4。
⑩:TSwitchButton组件,控件名称为SwitchButton1。
(11):TMemo组件,控件名称为Memo2。
Main窗体属性设置
BorderStyle:设置边界样式=bsDialog。Caption:设置窗体显示的标题=自定HTTP Client客户端。ClientHeight:设置客户区窗体的高度=438。ClientWidth:设置窗体客户区的宽度=465。
①Image1属性设置
Align:设置控件对齐方式=alClient。Stretch:设置图片拉伸适应于控件。Picture:设置图片。点击Picture属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。

③Label2属性设置
Caption:设置标签内容=地址:。Font:设置字体,双击该属性或者点击属性右侧的[...]以打开字体设置界面。

④EditHost属性设置
Text:设置文本此处设置服务器的地址,例如192.168.0.110。Name:设置控件名称=EditHost。Font:设置字体。双击该属性或者点击属性右侧的[...]以打开字体设置界面。

⑤Label3属性设置
Caption:设置标签内容=端口:。Font:设置字体,双击该属性或者点击属性右侧的[...]以打开字体设置界面。

⑥EditPort属性设置
Text:设置文本此处设置服务器的端口号,例如8806。Name:设置控件名称=EditPort。NumbersOnly:设置只允许输入数字=True。Font:设置字体。双击该属性或者点击属性右侧的[...]以打开字体设置界面。

⑦ImageSend属性设置
Height:设置控件高度=32。Width:设置控件宽度=32。Stretch:设置图片拉伸=True。Name:设置控件名称为ImageSend。Picture:设置图片。点击Picture属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
⑧Memo1属性设置
Lines:设置内容,双击该属性或者点击右侧的[...]打开编辑器,输入如下内容。
⑨Label4属性设置
Caption:设置标签内容=日志。Font:设置字体,双击该属性或者点击属性右侧的[...]以打开字体设置界面。

⑩SwitchButton1属性设置
Height:设置控件高度=56。Width:设置控件宽度=56。Stretch:设置图片拉伸=True。SwitchOff:设置处于关闭状态时显示的图片。点击属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
SwitchOn:设置处于开启状态时显示的图片。点击属性右侧的[...]按钮,打开文件上传界面,点击[Load...]从文件浏览器中选择对应的图片文件上传,返回该界面下,待显示出图片后点击[OK]加载图片。
# 3. 程序设计
# 3.1. 程序初始化设置
该程序无初始化设置。
# 3.2. 事件设置
- ⑦ImageSend-OnClick事件
点击以发送内容。
procedure TMyHandler.ImageSendClick;
//点击以将SQL传递至HTTP服务器中
var
v,vSQL:string;
begin
vSQL := FThis.Memo1.Lines.Text;
v:=paxfunc.NetHttpPost('http://' + FThis.EditHost.Text + ':' + FThis.EditPort.Text + '/opensql',vSQL,'text/plain','application/json',nil);
if v <> '' then
//返回的结果传递
FThis.Memo2.Lines.Add(paxfunc.urlDecode(v));
end;
2
3
4
5
6
7
8
9
10
11
- ⑩SwitchButton1-OnSwitch事件
点击开启或关闭日志框的显示。
procedure TMyHandler.SwitchButton1Switch;
//显示日志
begin
FThis.Memo2.Visible := FThis.SwitchButton1.IsChecked;
end;
2
3
4
5
# 4. 运行结果
通过工具栏保存,将程序保存为 sdb 项目文件。
使用鼠标点击工具栏运行(Run),测试运行结果。在服务器端设置端口号,点击启动按钮,下方显示HTTP服务 已启动。在客户端处填写服务器的地址端口号信息,填写查询的SQL内容,点击右侧的发送按钮,下方日志处会接收到查询的结果集。服务端的数据表格也会显示查询的结果。
